나는 3 대의 기계를 가지고 있습니다 :
- LAN 카드가 있는 서버 1대, 인터넷에 직접 접속할 필요 없음
- 인터넷용 WiFi 연결 및 LAN 포트 1개가 있는 Windows 호스트 1개
- Windows 호스트에는 Linux 가상 머신이 1개 있습니다.
[인터넷 없는 서버]---[Linux_VM]---[Windows_host]
- server_none_internet:eth0 -> 192.168.1.1
- Linux_VM_WiFi_NAT: wlan0 -> 10.0.2.15
- Linux_VM_LAN_bridge_card: eth0 -> 192.168.1.254
- Windows_LAN: 192.168.1.2
- Windows_WiFi: 172.16.1.1/10.0.2.1(NAT Linux ~ 10.0.2.15)
[Server_without_Internet]에 액세스하기 위해 iptables 전달을 사용하고 싶습니다.
노선:
- Server_without_internet, Linux_VM_LAN_bridge_card, Windows_LAN: 192.168.1.0/24(192.168.1.254 경유)
- Linux_VM_WiFi_NAT: 0.0.0.0~10.0.2.1(172.16.1.1)
IPv4 전달을 활성화합니다.
sysctl -w net.ipv4.ip_forward=1
다음과 같이 Linux_VM에 iptables를 구성했습니다.
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0-o wlan0 -j ACCEPT
평평한:
- 핑 정상: 192.168.1.1 ~ 1.2
- 핑 성공: 192.168.1.1 ~ 1.254
- 핑 정상: 192.168.1.2 ~ 1.1
- 핑 성공: 192.168.1.2 ~ 1.254
- 핑 정상: 192.168.1.254에서 1.1
- 핑 정상: 192.168.1.254에서 1.2
- 핑 정상: 10.0.2.15 ~ 8.8.8.8
- 핑 성공: 172.16.1.1 / 10.0.2.1 ~ 8.8.8.8
- 가오핑: 192.168.1.1 ~ 8.8.8.8
[Linux_VM]을 통해 [Server_without_server]에서 인터넷에 액세스하려고 시도하라고 알림
Linux_VM에서 tcpdump를 확인할 때:
- tcpdump -i eth0 -vvnn : 8.8.8.8에 대한 에코 요청이 표시됩니다.
- tcpdump -i wlan0 -vvnn : 8.8.8.8에 대한 에코 요청이 표시되지만 에코 응답이 없습니다.
따라서 iptables를 사용하여 wlan0으로 전달하는 eth0은 작동하지만 아무것도 돌려받지 못합니다.
누구든지 아이디어가 있나요?
감사해요
편집하다
conntrack iptables cli 및 IP 공개 icmp 테스트 작업을 추가했습니다.
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
이제 DNS 확인자가 작동하지 않습니다. server/etc/resolv.conf에는 Google DNS와 OpenDNS DNS가 있습니다.
아이디어?
감사해요