由于最近上网账号没有钱了,苦于没有网上,就从另一个实验室拉了电信,我就在那搞了个proxy来上网。那个实验室的网络分布大致是这样的,如下图:

linux 设置es ES_JAVA_OPTS_外网

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 设置es ES_JAVA_OPTS_linux_02

这样的话,理论上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

就可以看到如下:

linux 设置es ES_JAVA_OPTS_外网_03

但是我遇到的情况是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

可以看到如下

linux 设置es ES_JAVA_OPTS_linux_04

好了,因为重启后添加的东西会消失,所以我在 /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一个域名,比如百度,出现:

linux 设置es ES_JAVA_OPTS_linux_05

证明成功了,重启后也没事。

 

这里只简单介绍下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上到了外网: >