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转发.

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
在“文件打开过多(Too many open files)上”一文中提到,通过修改limit.conf文件可以对最大文件修改数起到做用等等操作。但在实际操作中在通过ssh登录经过ulimit –n查询出来的最大文件却不是limit.conf的值。为此,继续追查到底怎么回事。   1、limit.conf这个文件到底是怎么文件,这个文件到底如何起作用?   通过对Linux的一些学习,原来limit.conf配置文件是Linux PAM(插入式认证模块,Pluggable Authentication Mo
Facet说明 我们在浏览网站的时候,经常会遇到按某一类条件查询的情况,这种情况尤以电商网站最多,以天猫商城为例,我们选择某一个品牌,系统会将该品牌对应的商品展示出来,效果图如下: 如上图,我们关注的是品牌,选购热点等方面,对于类似的功能我们用lucene的term查询当然可以,但是在数据量特别大的情况下还用普通查询来实现显然会因为FSDirectory.open等耗时的操作造成查询效率的低下,同时普通查询是全部document都扫描一遍,这样显然造成了查询效率低; lucene提供了facet查询用于对

在Ubuntu升级Docker的方法 - 2015-05-31 06:05:31

摘要:在文章《 体验DigitalOcean的VPS云服务 》中实现了搭建一个Ubuntu 14.04的VPS操作系统环境,并使用Ubuntu 14.04版本官方软件源中已经自带的Docker包(docker.io)完成了Docker的安装,但是安装后的版本为1.0.1比较老,一些新的功能无法使用(比如,docker exec),本文记录升级到最新Docker的方法。 第一次的安装方法:(apt-get) apt-get install -y docker.io   ln -sf /usr/bin/doc

Linux命令之ls - 2015-05-31 06:05:27

What?  列出目录的内容 How? ls [ -A BCFGHLO PRSTUW@abcdef ghiklmnopqrstuwx1 ] [file ...] Points——常用的参数 ls -l 显示目录文件的详细信息[linux文件的属性] ls -t 按修改时间逆序排列 ls -r reverse 按相反顺序排列 ls -F 标识文件的类型 /表示目录   *表示可执行文件   @表示软连接   =表示socket文件   |表示管道文件  这些标识符跟在文件名后面 Example 显示该目录下
       Nginx 是一款轻量级的 Web 服务器/反向代理服务器 及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,中国大陆使用nginx网站用户有: 新浪、网易、腾讯等。                Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性,在高连接并发的情况下,Ngi
在DEMO测试中,我有个需求描述如下:线程A、B、C、D,我需要他们同时开始运行,并记录这四个线程全部完成所需要的时间。 这个借助synchronizer可轻松完成。这里我们使用CountDownLatch来实现,该方法的详细描述参见我的上篇博文: 点击打开链接 核心代码如下:demo请参见github /** * @param args * @throws InterruptedException */private static long timer(Executor e,int concurrenc
virtualenv 对于python开发和部署都是好工具,可以隔离多个python版本和第三方库的版本,这里作者总结了几个常用python服务怎么样结合virtual部署 原文链接 Python 中我最喜欢的东西之一就是可以使用 virtualenv 去创建隔离的环境。非常简单的就可以在不同的项目中部署不同的python类库。 有一个比较棘手的问题就是在生产环境中使用virtualenv 部署几个不同的服务有一些配置上的不同。 于是我就从我的项目中收集了几种不同的服务的不同配置方式。 可以肯定它们是不同
在注册用户后,登录,提示 You have to confirm your account before continuing 是因为给你发了确认邮件,你没有确认 gitlab在调试或mail组件没有成功启动,可能没有发对应的邮件 解决方案: 1:admin登录 2:admin area-users找到对应的用户 3:Destroy 4:新建对应用户 即可,Confirmed状态都有了
      信息技术战略的制定和信息技术实施计划的制定。信息技术战略主要关注IT使命,IT远景目标,中长期目标和实施策略原则等内容。信息技术实施计划是落实信息技术战略而制订的中长期的详细实施计划,它包括:信息化实施路线图,项目投资收益分析和信息化组织制度建设计划等内容。IT规划是指在理解企业发展战略和评估企业IT现状的基础上,结合所属行业信息化方面的实践和对最新信息技术发展的认识,提出企业信息化建设的远景、目标和战略,以及规划的信息系统的架构设计、选型和实施策略,全面系统地指导企业信息化建设,满足企业可持

WebViewJavascriptBridge 原理分析 - 2015-05-30 20:05:20

网上好多都是在介绍 WebViewJavascriptBridge如何使用,这篇文章就来说说 WebViewJavascriptBridge 设计原理。 主要从两个过程来讲一下:js调用UIViewController中的代码(Native),Native调用js 1.概述    首先有两个问题:     a.Native(中的UIWebView)是否可以直接调用js method(方法)?  可以。     b.js 是否可以直接调用Native的mthod?不行。    明确上述两个问题,那么上图就不