对于经常要浏览油管等被墙网站的人而言,利用代理来实现fq是非常有必要的。现在fq的方法中,最为主流的应该要数ssr了,因此本教程都是基于ssr的socks5代理而言的。

在windows中,ssr客户端设置的系统代理,大部分应用还是能够起到作用的,但是也有不少却不走代理。这里有个不错的解决方案就是通过sstap来实现网卡层的代理,这样一来,所有的流量都会通过代理流通转发出去了。

然而,windows并不是我们的全部,偶尔我也会用用linux,这样的话,对于linux有没有较好的全局代理方案呢?这就是本文将要介绍的。

下面我将简单介绍了linux常见的设置代理方法,以及全局代理的方法。

常见代理

最为常见的是

http_proxy=http://localhost:1080
https_proxy=http://localhost:1080
export http_proxy https_proxy

其中localhost为代理的站点,这里只是以localhost为例;1080为端口,同样只是为例。

然后导出这两个环境变量。最后可以在bash里面试试网络连通性

curl baidu.com
# or
curl google.com

取消这两个环境变量则用以下命令

unset http_proxy
unset https_proxy

这样设置完成后,只会在当前bash实例中起作用,如果想在每个实例起作用可以这样:

首先 vim /etc/profile 然后在末尾加上

http_proxy=http://localhost:1080
https_proxy=http://localhost:1080
export http_proxy https_proxy

保存后再

source /etc/profile

使其生效。如果想将socks代理转为http代理可以这样设置

http_proxy=socks5:http://localhost:1080
# or
https_proxy=socks5:http://localhost:1080

这里是socks5的例子,socks4则直接将数字5去掉即可。

iptables全局代理

安装

redsocks

首先执行这些命令

sudo apt-get install iptables git-core libevent libevent-dev
git clone http://github.com/darkk/redsocks.git
cd redsocks/
make
echo 'base{log_debug = on; log_info = on; log = "file:/tmp/reddi.log";
daemon = on; redirector = iptables;}
redsocks { local_ip = 127.0.0.1; local_port = 12345; ip = 127.0.0.1;
port = 1080; type = socks5; }' > redsocks.conf

大概流程是先克隆redsocks这个项目,然后编译,添加配置文件。

配置文件中local_ip和local_port表示redsocks这个软件将要监听的地址和端口;后面ip和port表示代理服务器的地址和端口。

然后type还有这几种类型 socks4, socks5, http-connect, http-relay,具体用法可以参考官网github

iptables

接下来配置iptables防火墙相关的。

直接创建一个脚本文件,方便运行,这里以proxy_iptables_start.sh为例:

#!/bin/bash
# Create new chain
iptables -t nat -N REDSOCKS # Ignore LANs and some other reserved addresses.
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN # Anything else should be redirected to port 12345
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345 iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS

首先就是防火墙nat表中新建一个名为REDSOCKS的chain,然后忽略一些局域网地址的转发, 接着就是设置转发规则了,即转发80和443端口的流量。

这样的配置基本就可用了。不过这里我按照官网的另一种配置方法

iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner root -j REDSOCKS

即直接转发root用户发起的所有数据包,而不是转发相应的端口流量,却并不能起到作用!如有大神,还望指导指导!

运行

还是在之前的redoscks目录下,

 ./redsocks -c redsocks.conf

注:若redsocks没有相应执行权限时,先 chmod +x redsocks 给予执行权限。

这样redsocks已经开启在端口12345的监听了。

然后运行前面那个iptables配置的脚本文件

./proxy_iptables_start.sh

执行完毕后,不出意外的话,打开浏览器,不设置代理或直接设置直连

然后百度ip就可以看到ip也变成了代理ip。



这里根据代理ip而定!

停止

停止运行的话,也建议创建一个脚本文件proxy_iptables_stop.sh

iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
killall redsocks

然后./proxy_iptables_stop.sh执行该脚本文件即可停止。

Linux利用iptables实现真-全局代理的更多相关文章

  1. *** + Polipo 配置全局代理(Linux 版本)

    转,原文:http://blog.csdn.net/jon_me/article/details/53525059 我本来是想查这个问题: How to start server and local ...

  2. Linux/CentOS设置全局代理(http)

    说明:为什么说是http代理,其实这个还不能说是全称走代理,罪名写的区别就是ICMP协议这个设置就无效,只能说是90%的应用都可以使用这个设置来实现代理访问,只有个别不行,比如一些软件根本不走http ...

  3. linux中利用iptables+geoip过滤指定IP

    1. 前提条件 iptables >= 1.4.5 kernel-devel >= 3.7 2.  安装依赖包  代码如下 复制代码 # yum install gcc gcc-c++ m ...

  4. Linux设置全局代理与yum代理

    设置全局代理,方法如下: 修改 /etc/profile 文件,添加下面内容: http_proxy=http://username:password@yourproxy:8080/ ftp_prox ...

  5. linux 防火墙 iptables实例讲解

    端口为例): 显示现有规则: iptables –L -n 清空现有规则表: iptables -F 黑名单:先允许所有数据包通过,后逐条添加黑名单规则. iptables –A INPUT–p tc ...

  6. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  7. Ubuntu「一键」设置全局代理

    Ubuntu「一键」设置代理 sonictl note: the DNS problem may be still there. Except proxychains. WSL (Windows Su ...

  8. 解析利用wsdl.exe生成webservice代理类的详解

    利用wsdl.exe生成webservice代理类:根据提供的wsdl生成webservice代理类1.开始->程序->Visual Studio 2005 命令提示2.输入如下红色标记部 ...

  9. redsocks 设置全局代理

    分享一下我的经验, http://lilydjwg.is-programmer.com/2014/2/7/linux-really-global-http-proxy.42701.html 1. 优点 ...

随机推荐

  1. 第 七 课 go的运算符

    http://www.runoob.com/go/go-operators.html 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 返回变量存储地址: & 指针变量:  ...

  2. Guice 学习

    Guice: 是一个轻量级的DI框架. 不需要繁琐的配置,只需要定义一个Module来表述接口和实现类,以及父类和子类之间的关联关系的绑定,如下是一个例子. http://blog.csdn.net/ ...

  3. html锚链接

    锚点(anchor):其实就是超链接的一种,一种特殊的超链接 普通的超链接,<a href="路径"></a> 是跳转到不同的页面 而锚点,<a hr ...

  4. df查看分区使用情况

    Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计.语法 df [选项]... [FILE]...     -a, --all 包含所有的具有 0 Blocks 的文件系统 ...

  5. 创建sharepoint网站

    1.首先打开管理中心 输入用户名和密码(默认是本机的管理员名称及密码) 在“应用程序管理”选择“管理WEB应用程序” 新建应用程序 选择一个没有占用的端口,选择允许匿名访问 数据库名称一般为WSS_C ...

  6. macOS 安装 Docker

    系统要求 Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内 ...

  7. 报错:Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): cn.itcast.bos.domain.base.SubArea

    因为 实体类中的主键 是String类型 不能自动为其分配id  所以需要手动设置在service层   model.setId(UUID.randomUUID().toString());

  8. 32.我的wafBypass之道

    0x01 搞起 当我们遇到一个waf时,要确定是什么类型的?先来看看主流的这些waf,狗.盾.神. 锁.宝.卫士等等...(在测试时不要只在官网测试,因为存在版本差异导致规则库并不一致) 1.云waf ...

  9. javascript 数组中出现的次数最多的元素

    javascript 数组中出现的次数最多的元素 var arr = [1,-1,2,4,5,5,6,7,5,8,6]; var maxVal = arr[0]; // 数组中的最大值 var min ...

  10. Leetcode 第136场周赛解题报告

    周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...