Ubuntu 上的代理

Ubuntu 上的代理

目标是让 Ubuntu 机器充当 WAN 上另一台机器的代理。实现此目的的最简单方法是什么?

更详细地解释一下:同一 WAN 上有两台机器,但其中一台可以访问互联网,而另一台则不能。不过,一台机器和另一台机器之间是可以通信的。因此,关键是在可以上网的机器(安装了 Ubuntu)上设置代理服务器。

注意:这并不是说要使用一台机器作为同一个局域网上的网桥,这可以轻松完成,这是一种不同的方法(据我理解)。

答案1

最简单的解决方案是安装代理服务器包,例如 polipo。对于为另一台设备提供互联网服务的单台机器,这可能就是您需要做的全部事情。

sudo apt-get install polipo

然后只需配置 polipo 服务以允许来自其他设备的连接,例如取消注释并更改文件中的以下几行/etc/polipo/config

proxyAddress = "0.0.0.0"

allowedClients = 192.168.56.0/24

然后重新启动 polipo 服务器以更新其配置:

sudo /etc/init.d/polipo restart

更复杂的部分是说服您的其他设备使用 polipo 代理服务器。设置代理完全取决于非直接连接的机器上的软件。

答案2

我的场景涉及同样的事情,唯一的不同之处在于另一台机器(需要互联网)是一台 Android 平板电脑。我使用 iptables 进行路由。它是 Ubuntu/Debian 平台上一种简单且开箱即用的解决方案。以下是您可以在支持互联网的机器上运行的示例路由脚本:

#Instead of ppp0, use the interface you use to access the internet
#Instead of wlan0, use the interface connected to your "internet-needy" machine
#####Enable Forwarding:
sysctl -w net.ipv4.ip_forward=1
iptables -P FORWARD ACCEPT

###########Create NAT rules using IPTables
iptables --table nat --delete-chain
iptables --table nat -F
iptables --table nat -X
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i ppp0 -o wlan0 -j ACCEPT -m state --state RELATED,ESTABLISHED
iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
###########

#Allow through firewall
iptables -A OUTPUT --out-interface wlan0 -j ACCEPT
iptables -A INPUT --in-interface wlan0 -j ACCEPT

一旦运行此脚本,您的 ubuntu 机器就会充当需要互联网的机器和互联网之间的路由器,在它们之间来回转发互联网数据包。

请记住,路由发生在比代理低得多的级别,因此性能更好。唯一的缺点是您无法执行诸如过滤内容或基于代理客户端进行用户身份验证之类的操作。但是,如果您只是想要具有良好性能的互联网共享,我推荐这种方法。

相关内容