我有以下设置:
N computers (static IP) --eth--> Wireless router <--wlan-- M computers (dynamic IP)
- 这些计算机运行的是 Ubuntu 14.04 或 Windows 10
- 路由器是 Linksys WRT 1900 ACS
现在,M 台计算机中的一台已连接到互联网,并且提供商已为其分配了静态 IP;由于各种原因,将以太网电缆连接到路由器的互联网端口很不方便。这台计算机将运行 Ubuntu 14.04。
是否可以配置网络,以便所有到路由器的互联网绑定流量都通过具有互联网连接的计算机路由?内部网络上的 N 台计算机的主要用途是在 Github 上运行代码,因此它们需要能够 ssh 到 Github 以及访问 apt 存储库。(编辑)
我找不到任何与我的设置非常匹配的说明(网络拓扑不同或操作系统不同),并且我对自己的能力不太有信心,我不愿意深入研究更改设置的过程只是为了测试(如果我犯了不可挽回的错误,我会受到相当大的惩罚)。谢谢!
答案1
简单指南:
您可以为以下拓扑配置 Squid:Ubuntu PC 必须有一个 NIC(wlan0)连接到私有 LAN,另一个 NIC(eth0)连接到 Internet。
要使用 Squid 设置透明代理,您必须添加必要的 iptables 规则。这些规则应该可以帮助您入门:
exec sudo -i
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 3128
第一行将启用转发
第二行将导致来自 eth0(WAN 接口)的所有出站数据包都具有 eth0 的源 IP 地址。
第三行将把所有传入的 HTTP 数据包(目的地为 TCP 80)从 wlan0(LAN 接口)重定向到 Squid 监听端口(TCP 3128),而不是立即将其转发到 WAN 接口。
现在您开始安装 Squid,并修改 Squid 配置以将其变成透明代理,您将我们的 LAN 子网(例如 10.10.10.0/24)定义为有效的客户端网络。任何不是来自 LAN 子网的流量都将被拒绝访问。
sudo exec -i
apt-get update
apt-get install squid
nano /etc/squid/squid.conf
基本内容简单示例:
## Hostname proxy example ##
http_port 3128 transparent
## Define our network ##
acl our_network src 10.10.10.0/24
## make sure that our network is allowed ##
http_access allow our_network
## finally deny everything else ##
http_access deny all
更多信息:
http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
答案2
您需要按照路由器的设计来使用它。我发现奇怪的连接会极大地改变您的网络质量,而 Linksys 的固件并不是为真正奇怪的配置而设计的。
将调制解调器插入 Linksys 上的互联网端口,并配置路由器以处理连接。如果您更改了更多您记得的设置并且可以改回来,则可能需要恢复出厂设置。
如果您将计算机连接到调制解调器,然后连接到调制解调器上的交换机(端口组),则需要更改路由器本地设置和 DHCP 中的网关以匹配计算机的 IP。这确实依赖于您的计算机来处理防火墙。如果是这种情况,请安装 fail2ban 并查找保护您的 iptables。