OpenVPN 클라이언트가 활성화되면 포트 전달이 작동하지 않습니다

OpenVPN 클라이언트가 활성화되면 포트 전달이 작동하지 않습니다

ddwrt를 실행하는 라우터에서 OpenVPN 클라이언트를 성공적으로 구성했으며 시작 시 OpenVPN을 활성화하도록 설정했습니다.

홈 네트워크 => OpenVPN 클라이언트가 있는 ddwrt 라우터 => 웹

OpenVPN 클라이언트가 있는 경우 라우터 웹 인터페이스를 볼 수 있으며 내 홈 Unix 상자 중 하나에 SSH로 접속할 수 있습니다.아니다달리기. 그렇다면 OpenVPN 클라이언트가 어떻게 동일한 작업을 수행할 수 있는지 궁금합니다.~이다달리기.

Wi-Fi를 통해 내 라우터에 연결된 내 Macbook에 지금 이 내용을 입력하고 있고 다른 Macbook은 iPhone 개인 핫스팟을 통해 네트워크에 연결되어 있기 때문에 내 홈 네트워크 연결이 활성화되어 있다고 확신합니다. 맥북 2대에서 테스트 중이에요.

중요한 정보:

라우터 방화벽이 꺼져 있습니다.

IP 라우팅 정보

root@myrouter:~# ip route list
0.0.0.0/1 via 10.208.185.5 dev tun1 
default via my-wan-gateway-ip-here dev ppp0 
my-wan-gateway-ip-here dev ppp0  proto kernel  scope link  src my-real-ip-here
10.208.0.1 via 10.208.185.5 dev tun1 
10.208.185.5 dev tun1  proto kernel  scope link  src 10.208.185.6 
127.0.0.0/8 dev lo  scope link 
128.0.0.0/1 via 10.208.185.5 dev tun1 
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
my-vpn-ip via my-wan-gateway-ip-here dev ppp0

내 OpenVPN 구성은 dd-wrt로 생성된 기본 router-up.sh를 실행합니다.자동으로. 나하지 않았다이 스크립트를 변경하세요.

root@myrouter:/tmp# cat /tmp/openvpncl/route-up.sh 
#!/bin/sh
iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -D INPUT -i tun1 -j ACCEPT
iptables -I INPUT -i tun1 -j ACCEPT

내 DNS 서버(Comodo 및 OpenDNS 사용)

root@myrouter:/tmp# cat resolv.dnsmasq
nameserver 8.26.56.26
nameserver 8.20.247.20
nameserver 208.67.222.222

또한 특정 IP가 VPN을 우회할 수 있도록 인터넷에서 찾은 일부 스크립트를 사용했습니다. 이 스크립트는 내 시작 스크립트(rc_startup)의 일부입니다. 내 태블릿에서 이 특정 게임을 플레이하려면 이것이 필요합니다.

#!/bin/sh
sleep 30
NO_VPN_LST="192.168.1.11 192.168.1.2"
[ -z "$NO_VPN_LST" ] && exit 0
WAN_GWAY="0.0.0.0"
while [ $WAN_GWAY == "0.0.0.0" ]; do
sleep 3
WAN_GWAY=`nvram get wan_gateway`
done
ip route add default via $WAN_GWAY table 10
for ipa in $NO_VPN_LST; do
ip rule add from $ipa table 10
done
ip route flush cache
exit 0

답변1

직면하고 있는 문제는 아마도 기본/소스 라우팅 중 하나일 것입니다.

VPN이 켜져 있지 않으면 기본 게이트웨이가 인터넷에 연결되어 있지 않기 때문에 작동하지만 VPN을 시작하면 몇 가지 새로운 경로가 "10.208.185.5 dev tun1 및 128.0.0.0/1을 통해 0.0.0.0/1"으로 추가됩니다. via 10.208.185.5 dev tun1 " 이렇게 하면 일반 연결이 아닌 기본 게이트웨이를 VPN 끝점으로 만드는 효과가 있습니다.

따라서 수행해야 할 작업에 따라 두 가지 솔루션이 있습니다.

더 쉬운 해결책은 기본 게이트웨이를 생성하는 두 줄을 제거하고 VPN을 통해 액세스하려는 VPN 연결의 특정 경로를 프로그래밍(또는 공급자가 프로그래밍하도록)하는 것입니다. 이는 특정 목적(예: 회사 네트워크에 연결)으로 VPN을 사용하는 경우에만 선택할 수 있는 옵션이지만 더 넓은 인터넷에서 자신의 신원을 숨기려는 경우에는 적합하지 않습니다.

더 어려운 해결책은 "소스 기반 라우팅"을 수행하는 것입니다. 이는 2개의 라우팅 테이블을 설정하는 것을 의미합니다. 현재 테이블은 기본 테이블이고, 두 번째 테이블은 다른 기본 경로를 사용하여 일반 연결을 통해 직접 들어오는 항목에 응답합니다. . 이는 사소한 일이 아니지만 이를 수행하는 방법을 포함하여 여러 링크가 있습니다.여기그리고여기 (Google의 키워드는 "소스 라우팅" 또는 "정책 라우팅"입니다. 하지만 이 분야의 전문가가 되고 싶다면 아마도라트- 4장에서는 정책 라우팅을 다룬다)

관련 정보