Linux修改默认网关设代理共享上网
Network 08月 31st, 2009当偶然网络不通时,我就用之前的方法蓝牙连接手机GPRS上网,应急查下资料也好,同学就要求我开个代理给他们上网(事实证明这是个及其愚蠢的决定,因为他们不用过滤扩展,一下子耗掉我几十M流量,心痛啊)。
环境描述
换句话说就是某台电脑能拨号上网并开启了代理,其它电脑通过这台电脑来上网,这个是很常见的情况吧。
当然如果是ADSL而且还有路由器就干脆用路由器拨号算了,不需要折腾。我这里指某些特殊的拨号程序如蓝牙连接手机GPRS上网(3G、校园网我觉得方法应该一样,未验证),这得用电脑来拨才行。而且连接多台电脑除了路由器外还可以交换机(无线,网线直连应该一样,能ping通对方就行了,未验证)
默认网关问题
linux的网络管理器能帮助我保存各种不同的网络环境配置,很方便。但是还有点问题的。
假设在本地局域网上,网关为10.0.16.1(一般家用路由器都是192.168.0.1),当我拨了GPRS后,电信分配的网关是10.6.6.6。
拨了号后我还得把网线拨下来才能上,那是因为网络管理器检测到连接到本地网络,默认把数据发送到10.0.16.1,而不是10.6.6.6,拔掉后才是换成10.6.6.6。
但我得插上网线让同学连接过来上网啊,所以就要手动修改路由表了,默认把数据发送到10.6.6.6,即修改默认网关为10.6.6.6。
修改默认网关
查看路由表命令如下
route -n
拔出网线后,拨GPRS后的路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.6.6.6 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
0.0.0.0 10.6.6.6 0.0.0.0 UG 0 0 0 ppp0
最后一行0.0.0.0表示默认网关是ppp0接口的10.6.6.6
如果插上网线,就变成这样了
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.6.6.6 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.0.16.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 10.0.16.1 0.0.0.0 UG 0 0 0 eth0
默认网关为eth0的10.0.16.1,如果这个网关挂掉后,就上不了网。所以要修改回ppp0接口的10.6.6.6
执行下面两条命令,即删掉路由表的默认网关条目并添加一个新的,如果经常使用,就添加为一个alias
sudo route del default gw 10.0.16.1 eth0
sudo route add default gw 10.6.6.6 ppp0
修改后变成这样
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.6.6.6 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.0.16.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 10.6.6.6 0.0.0.0 UG 0 0 0 ppp0
这样做后久能通过GPRS上网,别人也能连接到你的电脑了。
开启代理
接下来就是开启,代理服务软件我依然推荐3proxy,使用方法跟之前的校园网虚拟机代理差不多,不过是虚拟机换成了真机,下载编译3proxy。建立“3proxy.cfg”文件,内容如下
# 运行提示信息
system "echo -n 3proxy is running now..."
# 设置缓存
nscache 65536
# 设置用户
users chunge:CL:chunyemen
# 开启http代理,端口为8080
auth strong
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n -p8080
运行
3proxy 3proxy.cfg
出现
3proxy is running now...
表示运行成功,叫别人设置http代理为你的“IP:8080”,用户名密码分别为“chunge”和“chunyemen”就行了。

08月 31st, 2009 at 6:57 pm
前段时间弄蓝牙局域网的时候也改过路由表,可惜还是以悲剧收场。
08月 31st, 2009 at 7:53 pm
@nasofe
这方面我还没研究过。
08月 31st, 2009 at 7:55 pm
开代理的话曾用squid。
09月 26th, 2009 at 4:13 pm
为你的密码而崩溃。。。
嗯。你还真纯爷们!