我希望能够连接到办公室网络并通过该网络和网络内的服务器访问互联网。我使用一台运行 Ubuntu Server(已完全更新)的服务器,该服务器位于充当 PPTP 服务器的路由器后面。它的设置如下:
办公室
路由器提供的 IP 范围为 192.168.1.1-253,路由器的 IP 为 192.168.1.254。运行 PPTP 服务器的 Ubuntu Server 的 IP 为 192.168.1.102(静态,由路由器提供)。
家
使用相同范围(192.168.1.1-255)的网络。我尝试通过 Ubuntu 和 MacOSX 进行连接,结果都相同。
PPTP 设置
/etc/pptpd.conf
localip 192.168.1.102 remoteip 192.168.1.110-200
/etc/sysctl.conf
net.ipv4.ip_forward=1
/etc/rc.local
sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/etc/ppp/pptpd-options
ms-dns 8.8.8.8 ms-dns 8.8.4.4
(我想这不是必需的,只是为了确保万无一失)
当然,我将端口 1723 转发到 192.168.1.102,并在 Ubuntu 服务器上打开该端口(ufw allow pptp
)
现在的情况
我可以连接到 VPN 并访问互联网。根据 www.whatismyip.com,我确实有办公室 IP,所以这部分可以工作。我可以 ping 192.168.1.102,但不能 ping 网络中的任何其他地址。我只是不知道该怎么做了。我按照许多教程中的所有步骤操作,但这并没有改变任何事情。我还尝试了一个建议:
sudo iptables -A FORWARD -o ppp+ -i eth0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT
sudo iptables -A FORWARD -i ppp+ -o eth0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT
我不知道它到底起什么作用,但无论如何它不起作用。
答案1
对两个网络使用相同的地址范围是一个严重的错误配置。
我建议:
- 您的办公室使用 192.168.1.0/24(即 192.168.1.0 - 192.168.1.255)。
- 在家里使用 192.168.2.0/24(或任何其他私人网络,但不是 192.168.1.0/24)。
- 检查您的 PPTP 服务器管理的地址范围 (192.168.1.110-200) 是否不受您网络上的 DHCP 服务器 (如果有) 管理。