我有一个 Ubuntu 14.04.03 路由器(iptables)。它后面有一个局域网,里面有笔记本电脑、平板电脑、智能电视等。
我想在电视上使用 VPN,但电视软件/固件中没有这样的选项。所以我认为也许可以在我的 Ubuntu 路由器上设置 VPN 连接,并将电视上的所有流量重定向到此 VPN 连接。仅来自电视。来自其他设备的流量以及来自 Ubuntu 本身的流量应使用原始连接。
可以做到吗?
我的 VPN 提供商是 NordVPN。他们提供 PPTP、L2TP、OpenVPN TCP、OpenVPN UDP 和 SOCKS5。他们提供了在 Ubuntu 上设置 VPN 的说明,网址为https://nordvpn.com/tutorials/linux/linux-openvpn/,但它不能满足我的需要;)。
答案1
我正在寻找完全相同的设置。我知道这是一个迟来的回复,但也许其他人可以从中受益。
注意:我的 VPN 连接是 PPP 类型,显示为ppp0
下的接口ifconfig
。
电视: 配置电视的网络设置以使用您的机器的 IP 作为默认网关。
乌本图: 在您的机器上按如下方式设置 IP 转发和 NAT:
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT
我发现以下两篇文章很有帮助:
从我读过的少量资料来看,我相信上述命令可以执行以下操作:
- 在内核中启用 IP 转发
ppp0
通过附加一条规则将 NAT 表的 POSTROUTING 链目标设置为 MASQUERADE,指示网络堆栈将通过接口离开的数据包的发送方地址(伪装)重写为自己的地址。- 通过将(默认)FILTER 表的 FORWARD 链目标设置为 ACCEPT,允许包从某些连接状态
eth0
路由。ppp0
- 允许所有州的响应包裹。