网络高手请进:iptables 如何实现代理上网?
首先,我对IPTABLES不熟悉。。环境是这样的:
A.局域网内的一台linux主机a,可上网,只有一张网卡,假设IP 192.168.1.2;
B.路由器/网关b,假设IP 202.11.22.33,网关IP 192.168.1.1;
C.另外有一台公网代理服务器c,IP 101.4.5.6,开放的代理端口口 8888,可提供匿名/高匿名HTTP代理;
D.公网的一个应用服务器d,IP 303.7.8.9,提供80 HTTP访问,也提供 9999端口HTTP服务。
通过a的浏览器,设置代理 101.4.5.6:8888,可以从应用服务器d中,看到a 通过浏览器访问,并看到的是 c的IP。
但是如果我需要在其他程序中,也使用代理服务器d,那么我应该怎么样做呢?
如果我需要在程序中访问d的9999端口,也是使用代理服务器的,那么我又应该怎么样做?
iptables可以实现?如何实现?
试过曾经是成功的(应该不是我的幻觉),
在主机a中:
iptables -t nat -A OUTPUT -p tcp -dport 80 -j DNAT --to-destination 101.4.5.6:8888
(在这个之前,应该没有使用# echo 1 > /proc/sys/net/ipv4/ip_forward )
然后,用a的浏览器来访问d, 而从d 看到是来自c 的访问。
另外,路由器b没有做任何改变。
遗憾的是,我没法成功重复这个设置,:emn15:
是我之前的幻觉?
还是我之前在使用这个命令之前,做了其他的操作?
是iptables不可以设置代理服务器?
是我的命令用错了?
请指教~先谢谢了~~ 简单点来说,就是:
我是否可以在主机a 中,通过iptables设置a使用代理服务器c,然后访问d.
如果iptables不可以,那么应该怎么样做?
tsock5这种好像只是代理某一个程序,而我想要的是:
1.全局的代理,即所有的用户程序都可以通过代理访问,而不是单纯的只有浏览器可以通过代理访问。
2.包括80端口以及其他某些指定端口的代理,比如5566端口。即任何一个程序,只要是想访问外网某个IP的5566端口,那么这个访问都是通过代理c访问的。 画图出来,容易理解点 本帖最后由 大众推荐 于 2014-12-03 14:03 编辑
:shock: :shock: 本帖最后由 robin10 于 2014-12-03 14:34 编辑
linux主机a (IP 192.168.1.2) <--> 路由器b (IP 192.168.1.1) <--> 代理服务器c (IP 101.4.5.6:8888 ) <-->要访问的服务器d (IP 303.7.8.9:80 和 9999端口)
现在想在a 中,通过iptables 设置/使用代理,通过 代理服务器c 来访问d 的80和9999端口。
a中,不单是通过浏览器访问d, 也有通过其他的应用程序,通过http协议访问d. 欢迎指导~~~
回复 3# cryboy2001
页:
[1]