Arch Linux를 사용하여 이더넷 케이블을 통해 인터넷에 무선 연결을 공유하는 방법은 무엇입니까?
즉, 인터넷에 Wi-Fi가 연결된 노트북이 있는데 이더넷 케이블을 통해 실행되는 Wi-Fi 소프트웨어가 없는 컴퓨터와 해당 노트북을 공유하고 싶습니다.
여기 가이드가 있습니다
하지만 그것은 사용되었고 ifconfig
오래된 것 같아요.
수신 컴퓨터는 Windows 시스템이지만 그게 중요하지 않다고 생각합니다.
답변1
노트북에서 인터페이스 간에 트래픽을 라우팅하고 NAT를 설정하려면 다음 명령을 사용해야 합니다.
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o [your wireless adapter] -j MASQUERADE
또한 케이블로 연결된 두 컴퓨터의 이더넷 네트워크 카드에 고정 IP를 제공해야 합니다. 수동으로 또는 유사한 앱을 사용합니다 Network Manager
. 인터넷에 연결되지 않은 두 번째 컴퓨터에서는 노트북의 고정 IP 주소를 게이트웨이로 추가하고 DNS 서버의 IP를 노트북과 동일하게 설정해야 합니다( cat /etc/resolv.conf
DNS를 사용한 최신 구현이 아닌 경우 DNS 서버의 IP/IP가 표시될 수 있음). 설정).
답변2
간단한 안내가 있어요https://oracle-base.com/articles/linux/use-iptables-to-implement-packet-filtering-and-configure-nat. 그런데 Windows에서는 Linux PC에서 사용하는 DNS 주소를 Windows에서도 제공해야 한다는 사실을 발견했습니다.
내 Linux PC에 3G USB 모뎀이 연결되어 있고 인터넷 액세스가 가능한 두 대의 Windows PC가 있습니다. 이를 (커널) 패킷 전달이라고 하며, 최종적으로 이해하면 매우 간단하고 빠릅니다.
Linux에서는 "ifconfig" 명령(터미널에서)을 실행하고 Windows에서는 "ipconfig" 명령(명령 프롬프트에서)을 실행하여 네트워크 인터페이스 이름을 찾아야 합니다. Linux의 인터페이스 이름은 맨 왼쪽에 있습니다(예: enp2s0, enp3s0, enp0s18f2u6, lo). 이제 패키지 전달을 설정합니다.
먼저, Linux PC에서 패킷 전달을 활성화해야 합니다(oracle-base.com에서 링크한 가이드 참조).
다음으로 oracle-base.com 가이드에 설명된 대로 다음 명령을 실행할 수 있습니다(그러나 계속 읽기 전에 잠시 기다리십시오).
sudo iptables -I 전달 -i my_lan_interface -o my_modem_interface -j 수락 sudo iptables -I 전달 -i my_modem_interface -o my_lan_interface -j 수락 sudo iptables -t nat -I POSTROUTING -o my_modem_interface -j MASQUERADE
하지만 저는 온라인에서 더 강력한 방법을 찾았습니다.
sudo iptables -t nat -A POSTROUTING -o my_modem_interface -j MASQUERADE --random sudo iptables -A FORWARD -i my_lan_interface -o my_modem_interface -j 수락 sudo iptables -A FORWARD -i my_modem_interface -o my_lan_interface -m conntrack --ctstate 관련, 확립 -j sudo iptables 수락 -A 앞으로 -j 삭제
다음은 동일한 순서로 위 명령("더 강력한" 예)에 대한 설명입니다.
- 첫 번째 명령: my_modem_interface에서 가장을 활성화하여 나가는 패킷의 소스 주소를 다시 씁니다. --random 플래그는 대칭형 NAT와 함께 사용됩니다.
이제 전달 규칙을 구성해야 합니다. iptables는 기본적으로 모든 트래픽을 무조건 전달합니다. 여기서는 인터넷의 인바운드 트래픽을 제한하고 모든 아웃바운드 트래픽을 허용하는 것을 선호합니다.
- 두 번째 명령: my_lan_interface에서 my_modem_interface로의 트래픽을 허용합니다.
- 세 번째 명령: my_modem_interface에서 my_lan_interface로의 트래픽을 허용합니다.
- 네 번째 명령: 전달해서는 안 되는 다른 모든 트래픽을 삭제합니다.
Linux PC를 다시 시작하면 이러한 명령을 다시 입력해야 합니다. 부팅할 때마다 명령을 실행하는 스크립트가 있습니다. 적절한 "서비스" 호출을 통해 이러한 변경 사항을 영구적으로 적용할 수 있습니다(위에 제공된 oracle-base.com 가이드 참조). 그러나 시작 시마다 스크립트에서 실행하는 것이 좋습니다. 당신이 저장하는 것은 또 다른 도전입니다. 문제가 발생하거나 변경하려는 경우 또는 현재 세션에서 이 기능을 사용하고 싶지 않은 경우(또는 전혀 사용하지 않으려는 경우) PC를 다시 시작하면 해당 기능이 사라지지만 패킷을 비활성화해야 합니다. 이 기술을 완전히 비활성화하려면 재부팅하기 전에 /etc/sysctl.conf에 "net.ipv4.ip_forward = 0"을 작성하십시오.
이제 Linux PC와 다른 컴퓨터 사이에 네트워크 연결(이더넷 연결)을 만들어야 합니다. 예를 들어:
A) 인터넷에 연결된 Linux PC(저는 Fedora 사용)에서 Network Connection Manager를 사용하여 이더넷 연결을 생성하고 적절한 인터페이스(네트워크 카드 이름, 제 경우에는 enp3s0)를 선택한 후 이 Linux PC를 My LAN에 연결합니다. 올바른 방화벽 영역을 선택했는지 확인하십시오. 그렇지 않으면 LAN에서 인터넷에 액세스할 수 없습니다. 따라서 내부 LAN 인터페이스이므로 방화벽 영역을 "신뢰할 수 있음"으로 설정하고 모뎀 연결 인터페이스는 "공용"으로 설정해야 합니다. 그런 다음 IPv4 설정 탭에서 연결에 IPv4를 사용해야 함(IPv6는 무시할 수 있음)을 설정하고 수동 주소 설정을 선택합니다. 이제 주소 192.168.2.100을 추가하십시오. 이는 LAN에 있는 이 Linux PC의 주소가 됩니다. 넷마스크는 자동으로 설정됩니다("클래스 C"(개인) 주소이므로 255.255.255.0). 설정을 적용하고 연결하세요.
B) 두 번째 PC(Linux 또는 Windows 사용, 이더넷 케이블을 통해 위의 첫 번째 PC에 연결됨)에서도 네트워크 연결을 생성하고(Windows의 경우 아래 세부 정보 참조) 첫 번째 PC에 적합한 네트워크 인터페이스(장치/카드)를 선택합니다. PC), 첫 번째 PC에 대해 위의 수동 IPv4 설정을 사용하지만 여기서는 주소 192.168.2.101을 설정합니다. 이는 LAN에 있는 두 번째 PC의 주소가 됩니다(이 주소는 "개인" 주소이므로 외부에서는 볼 수 없습니다). 귀하의 LAN).
B1) Windows(운영 체제)에 연결하려면 "네트워크 및 공유 센터" -> "어댑터 설정 변경"으로 이동하여 이 Windows PC에서 LAN 네트워크 카드에 해당하는 네트워크 인터페이스를 찾으십시오. 또한 이더넷 네트워크 케이블을 통해 첫 번째 PC에 연결됩니다. 이제 인터페이스를 선택하고 속성을 마우스 오른쪽 버튼으로 클릭하십시오. 목록이 표시됩니다. 여기에서 "인터넷 프로토콜 버전 6"을 선택 취소하고 "인터넷 프로토콜 버전 4"를 두 번 클릭합니다. 이제 주소 192.168.2.101을 입력합니다. 이는 이 인터페이스([LAN/이더넷] 연결)에서 Windows PC의 주소가 됩니다. Tab 키를 누르면 네트워크 마스크(255.255.255.0)가 자동으로 채워집니다. (네트워크 프로필을 공개로 설정할 수 있습니다.)
B2) 첫 번째 Linux PC에 게이트웨이 주소를 설정해야 할 수도 있으므로 게이트웨이 주소 192.168.2.100을 입력해야 합니다.
다) 이제 첫 번째 Linux PC에서 사용하고 있는 DNS 주소를 입력해야 합니다. 예를 들어, 내 모뎀은 DNS 주소 192.168.1.1을 사용합니다("nmcli device show | grep IP4.DNS" 명령을 사용하여 이 주소를 찾을 수 있습니다. 여기서 인터페이스 이름은 인터넷에 연결된 Linux 인터페이스의 이름입니다). (Windows를 사용하여 인터넷에 연결하는 경우 터미널/명령 프롬프트에서 "ipconfig"를 실행하여 DNS 주소를 찾으십시오). 그게 다야. DNS 정보는 인터넷 연결에 매우 중요합니다.
간단히 말해서:
내 모뎀 주소: 192.168.1.100, DNS 192.168.1.1.
LAN의 Linux PC 주소: 192.168.2.100, 위에서 언급한 대로 방화벽 영역이 "신뢰할 수 있음"으로 설정되어 패킷 전달이 활성화된 iptables를 사용하여 트래픽을 리디렉션합니다.
Windows PC 1 주소: 192.168.2.101, DNS는 192.168.1.1로 설정, 네트워크 프로필은 공개로 설정됩니다. (기본 게이트웨이는 Linux PC: 192.168.2.100으로 설정되어 있습니다.)
Windows PC 2 주소: 192.168.2.102, DNS는 192.168.1.1로 설정, 네트워크 프로필은 공개로 설정. (기본 게이트웨이는 Linux PC: 192.168.2.100으로 설정되어 있습니다.)
(모든 컴퓨터는 일반 이더넷 케이블("패치 코드" 또는 "패치 코드"라고도 함)이 있는 간단한 이더넷 스위치를 통해 함께 연결됩니다. "현대적인" 네트워크 카드는 자체적으로 크로스오버를 수행하므로 크로스오버를 사용할 수 있습니다. 케이블을 교차하거나 서로 섞지 마십시오.)
가이드도 있습니다:https://medium.com/@TarunChinmai/sharing-internet-connection-from-a-linux-machine-over-ethernet-a5cbbd775a4f, Google의 DNS 주소를 사용합니다. 확인 해봐.