Socks5+proxychains做正向代理

1、         应用场景:

有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理。

2、         软件

Server端:

  Client端:

   

 

3SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。

可以代理任何tcp的请求。

安装socks5

找一个能上外网的服务器,安装socks5.

1、              配置编译环境:
yum -y install gcc automake make

2、             
安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel

3、             
下载,编译安装socks5
wget http://vpszn.net/soft/ss5-3.8.9-8.tar.gz
tar zxvf ss5-3.8.9-8.tar.gz
cd ss5-3.8.9-8
./configure
make
make install
 4、启动ss5服务。

chmod +x /etc/init.d/ss5
/etc/init.d/ss5 start
 5、开机启动ss5服务。
chkconfig –add ss5

chkconfig ss5 on
 6、默认使用1080端口,并允许任何人使用。
我们可以修改ss5的配置文件 /etc/opt/ss5/ss5.conf,进行用户认证:

vim /etc/opt/ss5/ss5.conf

1、#auth    0.0.0.0/0               -               -

改为:

auth    0.0.0.0/0               -               u    ---u指验证用户名和密码

2、# permit -    11.1.1.0/24      -        0.0.0.0/0 -        -        -        -        -

改为

permit u     0.0.0.0/0 -        0.0.0.0/0 -        -        -        -        -

可以限制网段、带宽、高可用等,具体配置按实际环境来配置

cd /etc/opt/ss5

然后在 /etc/opt/ss5/ss5.passwd 中添加用户名和密码 如:
test    123

重启ss5服务,以使修改生效:
/etc/init.d/ss5 restart
 7、修改默认的端口:
vi /etc/rc.d/init.d/ss5

daemon /usr/sbin/ss5 -m -t -b IP:8833

else
/usr/local/sbin/ss5 -m -t -b IP:8833
/etc/rc.d/init.d/ss5 start
 8、默认支持S4匿名可以使用取消S4,
mv /usr/lib/ss5/mod_socks4.so /usr/lib/ss5/mod_socks4.so.bk
 9、查看日志:
more /var/log/ss5/ss5.log

4、        
客户端安装proxychains

5、        
proxychains有四条链,每条链一种配置,我这里采用 strict_chain模式--严格按照代理列表顺序使用代理,所有代理必须可用,具体说明,请见链接地址https://www.52os.net/articles/proxychains-ng-redirect-tcp-to-proxy.html

 

git clone https://github.com/rofl0r/proxychains-ng.git

cd proxychains-ng

./configure

(sudo) make && make install

cp ./src/proxychains.conf /etc/proxychains.conf

cd .. && rm -rf proxychains-ng

vim /etc/proxychains.conf
推荐配置
strict_chain
proxy_dns 
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
localnet 127.0.0.0/255.0.0.0
quiet_mode
 
[ProxyList]
socks5  127.0.0.1 1080   nali   123     
 
默认使用必须在命令前面加上proxychains4:
例如(不要使用ping测试,ping不生效)
# proxychains4  curl  www.baidu.com
 
这样很不方便,比如运行tomcat等需要访问外网的程序,可以使用全局代理:
#proxychains4  -q  /bin/bash
然后在执行相应的启动命令。就会有访问外网的权限。
然后可以输入exit命令退回到原来的bash里面。

 

sockets+proxychains代理,使内网服务器可以访问外网的更多相关文章

  1. Docker 容器内无法通过 HTTP 访问外网

    现象 内/外网 IP 和 域名 可以 ping 通 容器内无法访问宿主机所在内网及外网的 Web 服务(404) 通过 curl 查看返回头信息感觉是所有 Web 请求被中转到一个固定的 Nginx ...

  2. linux设置好IP后,可以访问内网,不能访问外网

    1,设置网卡,ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为et ...

  3. VMware设置桥接模式(使虚拟机拥有独立IP访问外网)

    1.关闭虚拟机里的系统 2.VMware主窗口 编辑---->虚拟网络编辑器 右下角----> 更改设置---->出现  桥接模式 桥接到:看本机所连接的网络, 网络属性中有一项“描 ...

  4. 20200509_设置笔记本使用有线访问外网同时wifi访问外网

    1. 控制面板\所有控制面板项\网络连接 2. wifi的使用的手机热点, dhcp分配的, 不用做配置 3. 笔记本获取到的内网静态地址是192.168.3.11, 网关是192.168.3.254 ...

  5. 利用iptables的NAT代理实现内网访问外网

    利用NAT代理实现内网访问外网 背景及原理 若局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的那台服务器实现路由器的功能,即实现其他机器的NAT转换, ...

  6. 请问 内网的 dns服务器 为什么和 外网的dns服务器 一样??

    公司内的内网使用192.169.X.X的内网地址,但是在DNS段填写的是210.34.X.X,显然这是一个公网固定IP,我不明白的是:为什么内部网客户端使用的DNS服务器是公网上的IP呢?内网客户端能 ...

  7. 内网服务器通过Squid代理访问外网

    环境说明 项目整体需部署Zabbix监控并配置微信报警,而Zabbix Server并不能访问外网,故运维小哥找了台能访问外网的服务器做Suqid代理,Zabbix Server服务器通过代理服务器访 ...

  8. 医院内外网之间通过网闸交互,通过端口转发加nginx代理实现内网访问外网

    首先介绍下主要需求,很简单,就是要在医院his系统内嵌公司的平台,实现内网直接访问外网 这是院方给我提供的网闸相关配置,105是医院内网的服务器,120是外网的服务器,中间通过网闸配置的几个端口实现互 ...

  9. 3 微信开发本地代理环境的搭建--实现将内网ip映射到外网

    微信公众号的开发,要搭建网站,并且随时都有可能修改网站内容进行调试,这就需要临时外网能返回本地开发环境搭建的项目进行测试,即内网映射到公网,但是好多开发者没有自己的域名和服务器,这里我们先来搭建一个本 ...

随机推荐

  1. Java何时该使用覆盖?

    在Java编程中,什么时候该使用覆盖函数操作呢,很多人都知道有覆盖操作,但是到底什么时候该使用覆盖操作,还是有一些模糊的感觉,以下就举例来用代码分析就明白了, 举例生活中的案例,模拟制造手机的公司: ...

  2. Oracle/PLSQL: BitAnd Function

    BITAND 函数 本文介绍 Microsoft Excel 中 BITAND 函数的公式语法和用法. 说明 返回两个数的按位“与”. 语法 BITAND( number1, number2) BIT ...

  3. Spark Structured Stream 2

    ❤Limitations of DStream API Batch Time Constraint application级别的设置. 不支持EventTime event time 比process ...

  4. 详解webpack + vue + node 打造单页面(入门篇)

    1.node下载地址:http://nodejs.cn/download/,安装完成检查node和npm版本 2.淘宝镜像 : npm install cnpm -g --registry=https ...

  5. MVVM Light 新手入门(3) :ViewModel / Model 中定义“事件” ,并在View中调用 (无参数调用)

    今天学习MVVM架构中“事件”的添加并调用,特记录如下,学习资料均来自于网络,特别感谢翁智华 的 利刃 MVVMLight 6:命令基础 在MVVM Light框架中,事件是WPF应用程序中UI与后台 ...

  6. 批处理系列(13) -从视频导出高质量GIF图片

    需要ffmpeg,配置ffmpeg到环境变量. 保存代码到HQGIF.bat,与视频同目录,管理员权限运行CMDcd到此目标目录: HQGIF.bat input_video_name.mp4 out ...

  7. 813. Largest Sum of Averages

    We partition a row of numbers A into at most K adjacent (non-empty) groups, then our score is the su ...

  8. 字符串(tjoi2016,heoi2016,bzoj4556)(sam(后缀自动机)+线段树合并+倍增+二分答案)

    佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了 一个长为\(n\)的字符串\(s\),和\(m\)个问题.佳媛姐姐必须正确回答这\(m\)个问题, ...

  9. zoj4016 Mergeable Stack

    题意:对n个栈,有q次操作.每个操作可能为三种情况中的一种:1.将v插入到s栈的顶端:2.输出s栈的栈顶(若栈为空则输出empty):3.将栈t插入到栈s的栈顶. 开始考虑到指针可能会mle,用数组模 ...

  10. OS之内存管理 ---基本的内存管理策略(一)

    基本概念 基本硬件 CPU可以直接访问的通用存储只有内存和处理器的内置的寄存器.机器指令可以用内存地址作为参数,而不能用磁盘地址作为参数.所以执行指令以及指令使用的数据,应在这些可执行访问的存储设备上 ...