Greenpacket WiMax USB 모뎀을 통해 인터넷에 연결된 Linux(Ubuntu 12.04) PC가 있습니다. Windows 7 Home Premium을 실행하고 LAN을 통해 Linux PC에 연결된 다른 컴퓨터와 인터넷 연결을 공유하고 싶습니다. 가능합니까? 어떻게? 반대의 작업(인터넷을 Windows 컴퓨터에 연결하고 Linux와 공유)이 가능합니까?
답변1
당신은 설정해야네트워크 주소 변환리눅스 박스에서. NAT 및 iptables를 검색하면 웹에 사용 중인 배포판에 대한 많은 가이드가 있습니다. 다음은 데비안 가이드입니다. 다른 배포판에서도 작동합니다:http://debianclusters.org/index.php/NAT_with_IPTables
다음은 일부입니다.독일어 우분투 가이드:
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -o eth0 -s 192.168.0.0/16 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
시작할 때 실행되는 위치(/etc/rc.local 또는 각 줄 앞에 "up"을 넣고 /etc/network/interfaces에 모든 것을 넣습니다)에 넣고 eth0을 연결로 바꿉니다. 네트워크 장치가 연결되어 있습니다. LAN에 연결된 네트워크를 통해 인터넷과 eth1에 연결됩니다.
Linux 시스템에서 설정 하지 않으려면 bind
Windows 시스템에 일부 이름 서버(DNS)를 수동으로 알려야 할 수도 있습니다. 나는 당신의 LAN에 DHCP 서버가 필요하지 않거나 이미 있다고 생각합니다.
답변2
질문은,
다른 방법으로 수행할 수 있습니까(인터넷을 Windows 시스템에 연결하고 Linux와 공유)?
Windows에서 Linux로 인터넷 연결을 공유하는 방법은 다음과 같습니다.
윈도우에서는,
인터넷 공유가 활성화되어 있는지 확인하세요.
- 제어판으로 이동하여 네트워크 연결을 찾은 다음 인터넷 어댑터를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 클릭합니다.
- 고급을 클릭합니다.
- 인터넷 공유를 활성화하려면 여기에서 라디오 버튼을 클릭하세요.
윈도우 7의 경우:
- 제어판 → "네트워크 및 공유 센터"로 이동합니다. ("네트워크 및 인터넷"을 거쳐야 할 수도 있습니다.)
- 어댑터 설정 변경을 클릭합니다.
- 네트워크 어댑터를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭합니다. 메시지가 나타나면 관리자 비밀번호를 입력하세요.
- 공유 탭을 클릭하고 공유를 활성화합니다.
리눅스에서는,
루트( sudo
또는 su
) 권한이 있어야 합니다.
기본 게이트웨이를 설정하려면 다음을 입력하십시오.
route add default gw x.x.x.x
(참고: xxxx를 Windows 호스트의 로컬 IP 주소로 바꾸십시오.
ipconfig -all
Windows 명령 프롬프트에 다음을 입력하여 찾을 수 있습니다.)다음으로 다음을 입력하여 DNS를 설정하십시오.
echo "nameserver y.y.y.y" > /etc/resolv.conf
(참고: Windows에서 yyyy를 DNS 서버 주소로 바꾸십시오.
ipconfig -all
Windows 명령 프롬프트에 다음을 입력하여 찾을 수 있습니다.)
이 시나리오에서는 Windows가 인터넷에 연결되어 있습니다. 모든 것이 설정되면 이제 Linux에서 인터넷을 사용해 볼 수 있습니다. Linux 및 Windows 호스트는 동시에 인터넷을 사용할 수 있어야 합니다.
답변3
Linux 시스템을 Windows 시스템에 연결하려면(인터넷에 연결하기 위해) 작동하는 LAN(이더넷) 연결이 필요합니다. 여기 첫 번째 게시물에서 언급한 대로입니다. 따라서 기본적으로 두 시스템 모두에 정적 개인 IPv4 주소를 직접 할당해야 합니다. 연결을 "비공개" 또는 "신뢰할 수 있음"으로 설정해야 할 수도 있습니다. 두 컴퓨터를 연결한 후 네트워크 및 공유 센터 -> 어댑터 설정 변경으로 이동하여 인터넷 연결에 해당하는 네트워크 인터페이스를 선택하세요. 속성을 마우스 오른쪽 버튼으로 클릭하고 공유 연결과 관련된 탭을 찾으세요. 여기에서 LAN(이더넷) 연결을 선택하여 다른 컴퓨터와 공유할 수 있습니다.
이 스레드의 첫 번째 게시물에서 말했듯이 "내부" LAN PC에서 DNS를 지정해야 할 수도 있습니다. 따라서 Windows의 명령 프롬프트에서 ipconfig를 실행하여 사용 중인 DNS를 확인하거나 Google의 DNS 8.8.8.8 및/또는 8.8.4.4를 사용해야 합니다.
답변4
간단한 안내가 있어요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 주소를 사용합니다. 확인 해봐.