Ubuntu 作为路由器;将流量从 1 个客户端 (LAN) 重定向到 VPN

Ubuntu 作为路由器;将流量从 1 个客户端 (LAN) 重定向到 VPN

我有一个 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
  • 允许所有州的响应包裹。

相关内容