openvpn을 실행하는 Ubuntu 서버가 있고 iptables는 VPN 서버를 통해 들어오는 모든 트래픽을 푸시하는 데 사용됩니다. IP 테이블 구성은 매우 기본적이며 다음과 같은 일련의 명령을 통해 생성됩니다.
sudo iptables --flush
sudo iptables --table nat --flush
sudo iptables --delete-chain
sudo iptables --table nat --delete-chain
sudo iptables --table nat --append POSTROUTING --out-interface tun0 -j MASQUERADE
sudo iptables --append FORWARD --in-interface eth0 -j ACCEPT
다음 두 줄을 추가하여 특정 DNS 서버를 강제로 트래픽을 다시 작성하려고 했습니다.
sudo iptables --table nat --append PREROUTING -i eth0 -p tcp --sport 53 -j DNAT --to-destination 146.148.119.121:53
sudo iptables --table nat --append PREROUTING -i eth0 -p udp --sport 53 -j DNAT --to-destination 146.148.119.121:53
nslookup www.netflix.com
하지만 원하는 대로 작동하지 않습니다(및 출력이 nslookup www.netflix.com 8.8.8.8
다름).
이를 달성하는 방법에 대한 제안이 있으십니까?
답변1
--sport 53
사용 하지 마세요--dport 53
답변2
그들은 모두 권위 있는 답변이라고 말합니까?
Netflix는 로드 밸런싱을 사용하므로 가장 가깝고 사용량이 없는 서버로 연결됩니다. 그러나 방화벽 규칙은 사용되는 DNS 서비스와는 아무런 관련이 없으며 통신하는 포트만 차단되거나 허용됩니다.
이름을 조회하는 데 사용하는 DNS 서비스가 이 /etc/resolve.conf
파일에 있습니다. 어떤 네트워크에서 주소를 요청하든 이름을 찾기 위해 인터넷을 통해 해당 호스트로 이동합니다. dhcpc를 사용하면 이 파일이 업데이트되고 DNS 서버가 IP 번호 및 게이트웨이 주소와 함께 전송됩니다. 귀하에게 전송된 스크립트를 사용하지 못하도록 하려면 스크립트를 편집해야 합니다. 사용하려는 파일을 알고 있다면 파일에 넣고 쓰기 비트를 꺼서 업데이트할 스크립트를 찾을 수 없으면 변경할 수 없도록 하십시오. 시스템 로그에는 파일에 쓸 때 어떤 스크립트가 실패했는지 표시될 수 있습니다. 이전 주소를 삭제하려면 테이블을 새로 고치는 것을 잊지 마세요.
나는 항상 내 컴퓨터와 더 쉽게 대화할 수 있도록 나만의 이름 지정 서비스를 실행합니다. 내 dhcpd는 IP, DNS 서버 및 게이트웨이 상자를 제공합니다.