![Ubuntu VPN 服务器 (PPTPD) 配置 - 将流量传递到互联网](https://linux22.com/image/512762/Ubuntu%20VPN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20(PPTPD)%20%E9%85%8D%E7%BD%AE%20-%20%E5%B0%86%E6%B5%81%E9%87%8F%E4%BC%A0%E9%80%92%E5%88%B0%E4%BA%92%E8%81%94%E7%BD%91.png)
我正在尝试在我的 Ubuntu 机器上配置 PPTPD 以将所有 VPN 流量传递到它的互联网连接,所以我本质上希望它像代理一样工作。
我认为问题在于我的 PPTP 客户端 (Windows 7) 没有分配默认网关。我可以正常连接到 VPN,我获得了 IP 地址和 DNS 服务器,但没有默认网关。
我是否需要配置一个特定选项来告诉 VPN 服务器将其接收的所有流量通过其 eth0 端口转发到互联网。
谢谢!
答案1
你已经在你的 ubuntu 机器上完成了 nat 的设置了吗?
下面是使用 iptables 的示例,希望它能对你有所帮助
#!/bin/sh
# iptables executable lives here
IPTABLES='/usr/sbin/iptables'
# renaming of our interfaces for better usability
# externail interface
EXTIF='eth0'
# internal interface
INTIF='ppp0'
# flushing all of our rules
$IPTABLES -F
$IPTABLES -X
# switching on NAT
# 192.168.1.0/24 - is an internal network behind our linux box
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o $EXTIF -j MASQUERADE
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT
# optional tuning
# allow ssh connections to linux box
$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT
# allow connections to http server on linux box
$IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT
# deny all other connections
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP
# port forwarding
# vnc
iptables -A PREROUTING -t nat -i $EXTIF -p tcp --dport 5900 -j DNAT --to 192.168.1.116:5900
iptables -A INPUT -p tcp -m state --state NEW --dport 5900 -i $EXTIF -j ACCEPT
# samba
iptables -A PREROUTING -t nat -i $EXTIF -p tcp --dport 139 -j DNAT --to 192.168.1.116:139
iptables -A INPUT -p tcp -m state --state NEW --dport 139 -i $EXTIF -j ACCEPT
iptables -A PREROUTING -t nat -i $EXTIF -p tcp --dport 445 -j DNAT --to 192.168.1.116:445
iptables -A INPUT -p tcp -m state --state NEW --dport 445 -i $EXTIF -j ACCEPT
答案2
您想要哪个默认网关,远程还是本地?
答案3
我发现在 /etc/ppp/pptpd-options 中取消注释这两行;
ms-dns: 10.0.0.1
ms-dns:10.0.0.2
并用路由器/调制解调器的 IP 地址替换它们就可以了。