Linux全局代理

一般用Linux的话都是用全局代理都是用http_proxy以及https_proxy这两个环境环境变量来实现的, 但是缺点是这种方式并不是真正的全局代理, 即使设置了代理的话,对于某些应用还是无效的,比如w3m,而且这种方式并不支持socks协议.

我在实验室环境使用shadowsocks作为代理用来访问外网, 没有用来翻墙,原因是个人感觉shadosocks比其他socks软件好部署,虽然加密损失点性能,但是table加密那点计算量也不算什么.在windows环境的话用proxifity就可以很好得解决全局代理的问题,在Linux上,上面也说了,确实是一件比较麻烦的事情.

shadowsocks的服务器端就不介绍了, 推荐安装C with libev版本, 这个版本包含了ss-server ss-redir ss-local ss-tunnel,其他版本貌似没有实现本文功能的ss-redir. 除了ss-server是作为服务端的,其余三个都是做作为客户端的.ss-redir是用来做透明代理的, ss-local是做本地socks5代理的, ss-tunnel是做隧道的(这个目前还不知道实际的用途). 本文要说的就是用ss-redir配合Linux强大的iptable来实现全局代理.

下面以ubuntu14.04的环境来介绍


#创建一个叫SOCKS的链

iptables -t nat -N SOCKS

#忽略服务器的地址,如果不属于内网IP的话一定要注意加上.

#其实下面这句可以省略的, 因为它属于172.16.0.0/12

iptables -t nat -A SOCKS -d 172.23.45.19 -j RETURN

# 忽略本地地址

iptables -t nat -A SOCKS -d 0.0.0.0/8 -j RETURN

iptables -t nat -A SOCKS -d 10.0.0.0/8 -j RETURN

iptables -t nat -A SOCKS -d 127.0.0.0/8 -j RETURN

iptables -t nat -A SOCKS -d 169.254.0.0/16 -j RETURN

iptables -t nat -A SOCKS -d 172.16.0.0/12 -j RETURN

iptables -t nat -A SOCKS -d 192.168.0.0/16 -j RETURN

iptables -t nat -A SOCKS -d 224.0.0.0/4 -j RETURN

iptables -t nat -A SOCKS -d 240.0.0.0/4 -j RETURN

# Anything else should be redirected to shadowsocks‘s local port

#除上面之外的所有流量都跳转到socks的本地端口(local_port),这里使用shadosock默认端口1080

iptables -t nat -A SOCKS -p tcp -j REDIRECT --to-ports 1080

# 最后是应用上面的规则,将OUTPUT出去的tcp流量全部经过SOCKS链

#如果是在openwrt上实现透明代理的话,使用下面被注释了的规则

#iptables -t nat -A PREROUTING -p tcp -j SOCKS

iptables -t nat -A OUTPUT -p tcp -j SOCKS

可以将这段脚本保存为一个sh,加入开机自启

将防火墙规则加入系统后,启动ss-redir,其实两者顺序调换了也无所谓

#ss-redir -c /etc/shadosocks.json

shadosocks.json的内容和设置ss-local是一致的.shadosocks的好处是server/client共用一套配置.shadosocks官网即使对客户端服务器有分类, 但是客户端只是服务器端的一个子集,所以推荐用服务器的版本.

经过这样一番设置的话, 本机的所有tcp流量都会经过代理机器出去了,目前ss-redir不知处udp转发.

时间: 2024-08-29 03:15:17

Linux全局代理的相关文章

使用ssh隧道+privoxy实现Linux全局代理

使用ssh隧道+privoxy实现Linux全局代理 ssh简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎所

Linux设置全局代理与yum代理

设置全局代理,方法如下: 修改 /etc/profile 文件,添加下面内容: http_proxy=http://username:[email protected]:8080/ ftp_proxy=http://username:[email protected]:8080/ export http_proxy export ftp_proxy 如果没有密码限制,则以上内容可以修改为以下内容: http_proxy=http://yourproxy:8080/ ftp_proxy=http:

Linux设置代理上网

Linux设置代理上网 在Linux中设置代理上网只需要设置个用户变量就可以,有如下几种代理方式: 代理方式 变量名 http代理 http_proxy https安全代理 https_proxy ftp代理 ftp_proxy 不使用代理的IP no_proxy 1.立即生效 [[email protected] ~]# export http_proxy=itxxx:123456@110.199.131.137:909 代理方式  =  用户名 : 密码 @ 代理地址:端口 #http_pr

redsocks 设置全局代理

分享一下我的经验, http://lilydjwg.is-programmer.com/2014/2/7/linux-really-global-http-proxy.42701.html 1. 优点: 设置一次,全局代理.连虚拟机都不要设置代理. 2. 缺点: 会停止工作,我把它放到crontab里. 1. 编译redsocks https://github.com/darkk/redsocks. 2. proxy.sh iptables -t nat -N REDSOCKS || true

用PROXYCHAINS实现SSH全局代理

NUX下可以实现SSH全局代理的软件有tsocks和proxychains两种,但是个人感觉proxychains要更加稳定简单. $ yum install proxychains # vim /etc/proxychains.conf 要选 dynamic_chain,而不是random_chain和strict_chain.即注释掉strict_chain和random_chain那两行. 然后在最后的[ProxyList]下面添加: socks5 127.0.0.1 7070 PS:70

Linux ARP代理 与 NAT

有时候我们会在一个已有网络(10.10.10.0/24)内组建一个实验网络(192.168.1.0/24),网络结构如上图所示. 假设我们不能控制(修改)A网络内除D主机以外的系统配置,但可以完全控制网络B内的主机. 此时Server D实际上要承担一个路由的角色(它有两张网卡分别在两个网络A,B内) 所以先打开其上的内核路由转发功能,修改/etc/sysctl.conf中的如下配置 net.ipv4.ip_forward = 1 保存后应用查看 # sysctl -p net.ipv4.ip_

C#程序中设置全局代理(Global Proxy)

1. HttpWebRequest类的Proxy属性,只要设置了该属性就能够使用代理了,如下: 1 //设置代理 2 WebProxy WP = new WebProxy("41.76.44.76", 3128); 3 ICredentials jxCredt = new NetworkCredential("proxy_username", "proxy_password"); 4 WP.Credentials = jxCredt; 5 6 H

花生棒2代socks5全局代理模式成功案例分享。

环境:内网ip,家里有一个极路由2和buffalo路由:目的:外网访问内网,或连接到内网成局域网:尝试:两个都用花生棒尝试外网连接路由VPN服务,均失败,有这方面成功的大侠请分享出来,谢谢.VPN这条路走不通,就换个思路尝试socks5全局代理访问内网,最后成功.下面就和大家分享一下. 第一步:花生棒添加映射,用socks5代理应用.这个都会吧,直接设置即可. 第二步:外网电脑安装全局代理软件:Proxifier(如果哪位大侠有更好的全局代理软件请回帖推荐),这个软件默认就是普通应用软件都通过s

CentOS7 设置代理(转)--系统全局代理部分,测试可用

大多数公司的网络都使用局域网加代理上网,也就是说上外网必须使用公司指定的代理服务器,这有几个好处: 1. 首先代理可以一定程度提高浏览速度,因为可以将更多的网页缓存在代理服务器上,需要的时候直接拿就很快 2. 保障了局域网内计算机网络的安全,相当于多了一个屏障,外网能看到的只有代理服务器的ip而无法知道内网ip 3. 可以有效管控内网计算机的访问区域,适当屏蔽一些网站,相当于防火墙 但是缺点也是大大的有,作为员工这样上网就很受限制了,本文中主要讲如何在CentOS7中设置代理上网: 首先由于Ce