최근 VPN 서버 구성 과정에서 제가 겪은 문제 중 하나는 VPN 서버를 통해 인터넷에 연결할 수 없다는 것이었습니다. 실제로 저는 VPS(Debian 8)를 사용하고 거기에 VPN이 설치되어 있습니다. 클라이언트가 잘 연결됩니다. Traceroute 명령을 사용하여 트래픽이 중지되는 위치를 감지했는데 VPN 서버에서 트래픽이 중지된 것 같습니다. 나는 이것을 처리하는 방법을 정말로 모른다. 누구든지 도와주세요 :) 이것은 내 서버 구성과 클라이언트 구성입니다. 예, 제 클라이언트는 Windows 7 및 10입니다.
서버 구성.
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
클라이언트 구성. 참고: 서버의 IP는 숨겨져 있습니다.
client
dev tun
proto udp
remote 107.155.1x4.1x2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\OVPN\\ca.crt"
cert "C:\\OVPN\\client1.crt"
key "C:\\OVPN\\client1.key"
ns-cert-type server
comp-lzo
verb 3
클라이언트에서 Google의 DNS 서버 8.8.8.8을 테스트해 보았지만 여전히 작동하지 않습니다. 문제는 인터넷에서 벗어나는 서버 측의 일부 인터페이스에 있는 것 같습니다. 그러니 제안이 있으신 분은 도움이 되는 제안을 해주시기 바랍니다.
"다음 명령의 출력을 추가하십시오: sysctl net.ipv4.ip_forward, iptables-save, ip Route show. 클라이언트에서는 다음과 같을 수 있습니다: Route print. -rda"
1)의 출력은 sysctl net.ipv4.ip_forward
다음과 같습니다.
net.ipv4.ip_forward = 1
2)의 출력은 ip route show
다음과 같습니다
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.8.0.0/24 via 10.8.02 dev tun0
default dev venet0 scope link
3) 출력은 다음 iptables-save
과 같습니다
*mangle
:PREROUTING ACCEPT [241673:29858781]
:INPUT ACCEPT [232866:29385621]
:FORWARD ACCEPT [8803:472884]
:OUTPUT ACCEPT [250884:4018010]
:POSTROUTING ACCEPT [259688:40653794]
COMMIT
*filter
:INPUT ACCEPT [232866:29385621]
:FORWARD ACCEPT [8804:472884]
:OUTUPUT ACCEPT [250884:40180910]
COMMIT
*nat
:PREROUTING ACCEPT [20668:1262348]
:POSTROUTING ACCEPT [14826:1006759]
:OUTPUT ACCEPT [10970:791257]
COMMIT
*raw
:PREROUTING ACCEPT [241673:29858781]
:OUTPUT ACCEPT [250884:40180910]
COMMIT
6월 11일
문제가 라우팅 테이블에 있다고 믿고 - 명령을 실행했는데 netstat -nr
놀랍게도 라우팅 테이블에 VPN용으로만 할당된 이상한 IP 주소가 있다는 것을 발견했습니다. **
여기를 살펴보세요:
커널 IP 라우팅 테이블(참고: 라우팅 테이블 매개변수는 다음과 같습니다(!). 예: 라우팅 테이블의 IP는 첫 번째 열의 첫 번째 매개변수를 모두 사용합니다. 마지막 세 매개변수는 MSS Window irtt
라우팅 테이블의 모든 값에 대해 동일합니다 . .
Destination face 10.8.0.2 un0 10.8.0.0 un0 0.0.0.0 enet0
Gateway face 0.0.0.0 un0 10.8.0.2 un0 0.0.0.0 enet0
Genmask face 255.255.255.255 un0 255.255.255.0 un0 0.0.0.0 enet0
Flags face UH un0 UG un0 U enet0
MSS Window irtt face 0 0 0 un0 0 0 0 un0 0 0 0 enet0
6월 15일
안녕, 친구! 답장을 보내주셔서 다시 한번 감사드립니다!
출력은 ip route show
다음과 같습니다
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1 10.8.0.0/24 via
10.8.0.2 dev tun0 default dev venet0 scope link
VPS에서 다음 명령의 출력은 ip route get 8.8.8.8
다음과 같습니다(참고: IP 주소는 숨겨져 있습니다).
8.8.8.8 dev venet0 src 107.155.1x4.1x2
cache mtu 1500 advmss 1460 hoplimit 64
클라이언트 측에서 - 이 명령을 사용했습니다 route print
- IP 주소를 많이 얻었지만 이 문제를 해결하기 위해 가장 중요한 것이 무엇인지 모르겠습니다...
다음 단계는 무엇입니까?
도움을 주셔서 다시 한번 진심으로 감사드립니다.
6월 15일 업데이트됨
route print
다음은 Windows 클라이언트의 명령 출력입니다.
IPv4 Route Table
===========================================================================
Active routes:
Network address Subnet mask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.88.1 192.168.88.208 20
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.50.0 255.255.255.0 On-link 192.168.50.1 276
192.168.50.1 255.255.255.255 On-link 192.168.50.1 276
192.168.50.255 255.255.255.255 On-link 192.168.50.1 276
192.168.56.0 255.255.255.0 On-link 192.168.56.1 266
192.168.56.1 255.255.255.255 On-link 192.168.56.1 266
192.168.56.255 255.255.255.255 On-link 192.168.56.1 266
192.168.88.0 255.255.255.0 On-link 192.168.88.208 276
192.168.88.208 255.255.255.255 On-link 192.168.88.208 276
192.168.88.255 255.255.255.255 On-link 192.168.88.208 276
192.168.100.0 255.255.255.0 On-link 192.168.100.1 276
192.168.100.1 255.255.255.255 On-link 192.168.100.1 276
192.168.100.255 255.255.255.255 On-link 192.168.100.1 276
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.88.208 276
224.0.0.0 240.0.0.0 On-link 192.168.100.1 276
224.0.0.0 240.0.0.0 On-link 192.168.50.1 276
224.0.0.0 240.0.0.0 On-link 192.168.56.1 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.88.208 276
255.255.255.255 255.255.255.255 On-link 192.168.100.1 276
255.255.255.255 255.255.255.255 On-link 192.168.50.1 276
255.255.255.255 255.255.255.255 On-link 192.168.56.1 266
===========================================================================
Permanent routes:
6월 17일 업데이트됨
안녕하세요, 해당 명령을 사용하여 서버에서 NAT를 활성화하려고 시도했지만 불행히도 다시 작동하지 않았습니다. 의 출력은 ip route show
이전과 동일합니다.
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.8.0.0/24 via 10.8.0.2 dev tun0
default dev venet0 scope link
당신이 나에게 준 명령은 원활하게 실행되었지만 아무런 결과도 얻지 못했습니다. 따라서 새 IP 경로가 출력에 나타나지 않습니다! 마스크를 /16에서 /24로 변경하는 등 다양한 방법으로 동일한 경로를 추가해 보았지만 여전히 결과가 없습니다.
오직중요한나를 궁금하게 만드는 것은 클라이언트 측에서 OVPN Gui를 실행했는데 인터넷이 작동하지 않는다는 것을 알고 있으며 처음부터 내 Facebook 페이지가 로드되기 시작하지만 Google과 같은 다른 페이지가 표시된다는 것입니다. com이나 linkedin.com 또는 기타 웹사이트는 열리지 않습니다...
내 VPS 제공업체에 대해 FAQ 페이지에서 다음과 같이 말합니다.
**22
Do you support TUN/TAP? IPSEC?
Yes, TUN/TAP and IPSEC are enabled on all VPS by default.**
**2
What kind of virtualization is offered/used?
We utilize OpenVZ on our infrastructure. If you require KVM virtualization we recommend SpeedyKVM.**
이 문제는 무엇입니까? 이 문제를 어떻게 극복합니까?
다시 한번 감사드립니다!
답변1
서버에서 NAT를 활성화해야 합니다.
고정 IP 주소용 SNAT:
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o <if> -j SNAT --to <ip>
또는 동적으로 할당된 IP 주소가 있는 경우 다음을 사용합니다 MASQUERADE
(느리게).
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o <if> -j MASQUERADE
하지만
<if>
외부 인터페이스의 이름입니다(예venet0
: ).<ip>
외부 인터페이스의 IP 주소입니다.