我们可以检查一下吗?这是来自vpn 使用动态 DNS 连接但没有互联网(openwrt 路由器作为服务器)。
当我连接到 vpn 并从 whatismyip 检查我的 ip 时,它仍然与连接前相同。
我正在连接朋友的 wifi,检查时的 IP 与连接 vpn 时的 IP 相同。
vpn 之前的 route -n (在我家的 wifi 上):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
192.168.1.153 127.0.0.1 255.255.255.255 UGH 302 0 0 lo
vpn 之前的 route -n (在我朋友的 wifi 上):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
192.168.1.2 127.0.0.1 255.255.255.255 UGH 302 0 0 lo
192.168.1.135 127.0.0.1 255.255.255.255 UGH 302 0 0 lo
连接到vpn后(通过我朋友的wifi)的route -n:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
79.1.... 192.168.1.254 255.255.255.255 UGH 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
192.168.1.2 127.0.0.1 255.255.255.255 UGH 303 0 0 lo
192.168.1.134 127.0.0.1 255.255.255.255 UGH 303 0 0 lo
我正在使用以openwrt为服务器的路由器(192.168.1.1)。
- - -更新 - - - - -
如何删除它?
Table: NAT
Chain zone_wan_nat (References: 1)
Rule # Pkts. Traffic Target Prot. Flags In Out Source Destination Options
1 834 57.26 KB MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0 -
答案1
在这里,您只将发往 10.10.10.0/24 的流量路由到“tap0”接口。“tap0”是 Linux 用来“伪造”第 2 层连接的虚拟/虚构接口。因此,在您的特定情况下,当您向 whatsmyip.com 或其他地方发送 Web 请求时,该特定流量将通过您的正常以太网 (eth0) 接口发出,这意味着该服务将进行 DNS 查找并查看您的正常非隧道 IP 地址。
如果可以,请使用 VPN 连接 SSH 或 telnet 或远程桌面或 VNC 或任何其他方式连接到 10.10.10.x 网络上的计算机。然后从该机器执行“whatsmyip”,您应该会看到一些不同的东西,因为(大概?)该计算机将具有不同的默认互联网路由。
答案2
尝试在 openvpn 配置文件中添加以下选项:
push "redirect-gateway def1"
这将强制您的所有流量使用 vpn 隧道连接到家庭路由器上的 vpn 服务器。
如果您在连接到 vpn 之前和之后运行“traceroute www.google.com”,您将看到您将采取不同的路径,这意味着流量正在通过 vpn。
如果您想在使用 vpn 时在 whatismyip.com 上看到您家用路由器的公网 ip 地址(no-ip 域名),那么您需要在路由器上对您的流量进行 NAT。
您可以通过以下命令在路由器上执行此操作:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
此命令会将你的流量的源 IP 转换为你家庭路由器的公网 IP,因此下次 whatismyip.com 应该会给你你的家庭 IP。
如果你的wan口不是eth0,而是eth1的话,那么需要在命令里改一下,比如“-o eth1”