由于最近上网账号没有钱了,苦于没有网上,就从另一个实验室拉了电信,我就在那搞了个proxy来上网。那个实验室的网络分布大致是这样的,如下图:
xxx研究所里边的电脑用192.168.10.x的IP就可以上到外网征战沙场,甚至挂机down岛国片,用172.16.54.x的IP就可以在内网横行霸道,享受IEEE等学术论文下载。当然,如果想用内网通过个人ID去上外网也是可以的,只是这个钱要自己出,本人的钱就用光了:(
苦逼我的希望能够借助xxx研究所的外网,少花点钱,就只能在Linux Server上动手脚了。
Linux Server 装的是 ubuntu10.04,然后我打算在上边建立一个虚拟网卡,IP地址和网关分别为: IP 192.168.10.30 gw 192.168.10.1,建立后的图如下所示:
这样的话,理论上linux server可以同时访问两个网段,也就是说可以通过192.168.10.1的网关出去了。如果我在linux server上边做个proxy,那么我就可以在我电脑上免费上网了:>
下面我用putty远程到linux server上,进行操作:
sudo vim /etc/network/interfaces
随后添加:
auto eth0
iface eth0 inet static
address 172.16.54.159
gateway 172.16.54.254
netmask 255.255.255.0
auto eth0:0
iface eth0:0 inet static
address 192.168.10.30
gateway 192.168.10.1
netmask 255.255.255.0
添加完后,退出,重启网卡
sudo /eth/init.d/networking restart
ifconfig
就可以看到如下:
但是我遇到的情况是192.168.10.1还不是默认网关,所以我必须要将其添加成为默认网关。为了防止当添加192.168.10.1后linux server与我的电脑断开,我把202.193.9.0网段先加入到它的路由表里边。
sudo route add –net 202.193.9.0/24 gw 172.16.54.254
sudo route add default gw 192.168.10.1
sudo route del default gw 172.16.54.254
route –n
可以看到如下
好了,因为重启后添加的东西会消失,所以我在 /etc/rc.local启动脚本里边添加了这两句话:
sudo route add –net 202.193.9.0/24 gw 172.16.54.254
sudo route add default gw 192.168.10.1
后来我又出现一个问题,就是DNS找不到了,无法进行域名解析。我想在/etc/resolv.conf里边修改,但是看到这句话:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
意味着改了也没用,这个文件是动态建立的,会被重写。网上搜索了一下,有几种方法,我选择的是修改/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)
添加两句话:
nameserver 8.8.8.8
nameserver 8.8.4.4
如果还有DNS就一行一个,修改好保存,然后执行:
resolvconf -u
再查看/etc/resolv.conf,最下面就多了2行:
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
随后随便ping一个域名,比如百度,出现:
证明成功了,重启后也没事。
这里只简单介绍下squid的使用,如果深入的话,需要自己慢慢查资料。
下面进行proxy squid的安装和设置,首先要下载一个squid:
sudo apt-get install squid
squid proxy 的配置信息都存放在 /etc/squid/squid.conf里边,所以要备份一下:
sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.original
随后打开squid.conf: sudo vim /etc/squid3/squid.conf
如果需要更改代理的port,通过更改http_port就可以了:
http_port 3128
我觉得默认的挺好,所以没改,有需要的可以改改
默认的proxy是关闭的,通过http_access打开:
http_access deny all 这句改成 http_access allow all,这样就能让全部的人都通过squid的代理上网了,如果想只让某个网段的话,可以这样设置:
acl mynetwork src xxx.xxx.xxx.xxx/xx
eg : acl mynetwork src 192.168.10.0/24
接着这样搞一下:
http_access allow mynetwork
这样就能让你喜欢的网段访问proxy,其他的就没有办法了,也就比较可怜了:<
如果还不爽,还能设置个可以访问代理的时间,这样搞搞就行:
acl worktime time M T W T F 9:00-17:00
随后在http_access后边加上:http_access allow mynetwork worktime
这样,就只允许192.168.10.0网段在星期一到星期五的 9点到17点才能访问proxy,其他时间都不行。
总之,这里配置了单网卡的双IP和双网关,再搭建了proxy,方便我从自己电脑通过linux server上到了外网: >