linux如何利用另一台linux代理上网

来源:互联网 发布:windows最高权限 编辑:程序博客网 时间:2024/06/05 17:30

安装squid,在ub下直接sudo apt-get一下就行了,以下是配置阶段
首先,我们运行$ sudo htpasswd -c ~/psw username
然后输入密码两次,确认后生成一个名字是psw的文件,登录名是username
然后进入目录/usr/lib/squid
执行sudo mv ~/psw ./
把那个文件复制到当前目录
以上就生成好了一个认证文件,等会要用到这个文件
为什么先生成在home里呢?因为在我这里,直接在usr目录生成总是失败(即使用sudo),那就先在home里生成再复制过去就行了

再然后,修改/etc/squid/squid.conf文件,主要是修改认证方式,在这里需要用用户名/密码来使用proxy
那个文件的权限认证,是顺序执行的,所以你把以下代码直接加到最前面也行,或者找acl认证那段的代码(网上有说明,类似代码如acl Safe_ports port 80,给这个方便你定位,那个文件太长了)在那附近加,默认端口是3128,你找到这个数字改就行了
auth_param basic program /usr/lib/squid/ncsa_auth /usr/lib/squid/psw
acl pswnet proxy_auth REQUIRED
http_access allow pswnet
意思是使用基本认证方式,使用psw文件内容作为认证
如果你需要例外,例如本地IP就需要认证,那就把http_access放在本地认证代码行的后面,如以下几行的后面:
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge
如果需要对IP作限制,那需要先用acl指令定义名字和属性,再在后面使用http_access决定这个名字的权限,如:
acl baduser 192.168.0.100/32
acl baduser 192.168.0.128/32
http_access deny baduser
其中,192.168.0.100/32的意思是,192.168.0.100这个地址,使用网关为32位的,即255.255.255.255,即只有这个IP
如果是192.168.0.0/24,那么与192.168.0.0-192.168.0.255等效
前面那个代码,就把192.168.0.100与192.168.0.128两个IP给封禁

而如果需要对MAC地址进行控制,那就可以:
acl baduser arp 00:01:02:1f:2c:3e

控制别人访问指定网站的权限:
acl badpage dstdomain www.tecent.com
控制域名段访问权限
acl badpage dstdomain .tecent.com
这样的话,不论前面是www还是bbs还是news等,只要后缀为这个的域名均不能访问

控制下载文件类型:
acl mmxfile urlpath_regex -i \.mp3$ \.avi$ \.exe$
http_access deny mmxfile

控制使用时间:
acl worktime time MTWHF 8:30-12:00 14:00-18:00

控制并发连接数:
acl conncount maxconn 3

总之,比win下的什么什么代理软件强大很多很多,权限的控制方式完全由你的代码,和代码次序决定

最后,运行
sudo squid -k reconfigure
使前面的修改生效(如果之前这个服务还没运行,那就直接运行即可)

原创粉丝点击