路由所有流量(重定向网关)不起作用 - OpenVPN

路由所有流量(重定向网关)不起作用 - OpenVPN

首先,我知道这个问题至少被问过一百万次。我尝试了许多解决方案,但仍然无法使我的 VPN 正常工作。当我连接到我的 VPN 时,我的客户端 IP 会更改为 VPN IP(预期)。但不会通过 VPN 路由所有流量。我可以知道,因为我使用 OpenDNS 作为我的家庭 DNS 服务器,并使用他们的internetbadguys.com测试域来测试通过 VPN 的流量。我push在 server.conf 中使用以下标志:

push "redirect-gateway def1"
push "remote-gateway vpn_server_ip"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 60

在 client.ovpn 中:

push "redirect-gateway def1"

另外,如果有帮助的话,我正在使用 AWS EC2 实例来运行我的 VPN。我不确定接下来该做什么。希望有人能解决这个问题 :)

提前致谢!

服务器和客户端配置如下:

服务器:

port PORT
proto udp
dev tun
ca ca.cert
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 172.31.0.0 255.255.0.0"
keepalive 10 120
tls-auth ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
# ROUTE CLIENT'S INTERNET ACCESS THROUGH THE SERVER
push "redirect-gateway def1"
push "remote-gateway vpn_server_ip"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 60

crl-verify crl.pem

客户:

client
dev tun
proto udp
remote MY-SERVER-IP PORT
remote MY-SERVER-HOSTNAME PORT
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
comp-lzo
push "redirect-gateway def1"
verb 3

答案1

对于遇到此问题的任何人来说,您很可能需要在服务器上启用 IP 转发,因为默认情况下该功能可能处于关闭状态。

将其放入 /etc/sysctl.conf:

net.ipv4.ip_forward = 1

然后运行:

sysctl -p /etc/sysctl.conf

现在,这解决了您的 IP 转发问题。如果您正在运行防火墙(可能是 iptables),那么您可能希望启动 NAT,因此请运行以下命令:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

将如下内容放入 /etc/sysconfig/iptables 以使其永久生效:

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

如果一切顺利,您的服务器现在正在转发您的客户端 VPN 流量。接下来您要做的就是打开您的客户端浏览器,whatismyipaddress.com查看它是否显示了 Amazon 地址,然后www.dnsleaktest.com查看情况如何。如果您通过 Google 泄露信息,您可能需要考虑在您的 VPN 服务器上运行一个简单的 DNS 缓存服务器,并将您的客户端指向该服务器(如果需要匿名)。

我希望这能有所帮助。

相关内容