我试图设置一个代理服务器,但我无法做到这一点。 这是我的设置的细节
我有一台服务器(IBM X3800系列)和一台台式电脑。 服务器不得不将网卡连接到它。 eth0和eth1。 eth0通过202系列的全球IP连接到广域网,互联网在服务器上正常工作,我可以连接到互联网。 eth1连接到交换机,下面是eth1中的configuration
IP: 192.168.2.2 Netmask: 255.255.255.0 Gateway: 192.168.2.1 Network: 192.1968.2.0 Broadcast: 192.168.2.255
我只是使用apt-get install squid安装了squid代理。 我已经改变了文件
/etc/squid/squid.conf
并添加了下面的细节
httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on acl lan src 192.168.2.0/24 http_access allow lan
最后添加这些iptable规则
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to globalip:3128 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
其中globalip是eth0的IP。
现在桌面PC通过交换机连接到服务器,桌面PC的IPconfiguration是这样的
IP: 192.168.2.4 Netmaskapt-get install squid: 255.255.255.0 Gateway: 192.168.2.1 Network: 192.1968.2.0 Broadcast: 192.168.2.255
我可以轻松地从桌面到服务器,从服务器到桌面。 但是我的桌面系统无法访问互联网。 所以我猜想问题在于鱿鱼。 请帮我解决这个问题。 如果您需要任何其他信息,请让我知道。
谢谢
它看起来像你正在build立一个透明的代理,但你的configuration看起来不适合这个任务。 httpd_accel_*指令是用于反向代理(AKA http加速),我相信。 你应该评论他们。 改用http_port 3128 transparent 。
你有一个代理坐在电脑上,但没有任何forms的configuration,导致其他电脑使用该代理。 iptables设置正在尝试修改那些永远不会在那台计算机上结束的数据包,因为networking上的其他任何地方的configuration都不会将这些数据包引导到该计算机上。
代理服务器只能代理HTTP,但你仍然期望像ping这样的工作。
这听起来像你想要的是NAT,而不是代理。 并且应该在作为LAN机器的默认网关的机器上设置NAT。