nanopi SOCKS5 代理
nanopi (SOCKS5+openvpn) + 阿里ES(openvpn + socat)
构建内网代理。
需求:
公网 阿里ES服务器1台,内网nanopi1个(可连接公网服务器),
想从外网,访问内网的web服务器。
采用SOCKS5代理方式,由公网服务器将socks5流量转发给nanopi上的socks5服务器。
① 内网nanopi (openvpn client) 连接 公网 阿里ES服务器(openvpn server)
这样 阿里ES服务器可访问内网的nanopi。
(部署过程略)
② nanopi 安装并配置 danted (SOCKS5代理服务器)
sudo apt-get install dante-server -y (danted)
sudo apt-get install dnsutils (nslookup)
sudo vim /etc/danted.conf 末尾添加配置:
# block any other http connects to the example.com domain.
#block {
# from: 0.0.0.0/0 to: .example.com port = http
# log: connect error
#} # everyone from our internal network, 10.0.0.0/8 is allowed to use
# tcp and udp for everything else.
#pass {
# from: 10.0.0.0/8 to: 0.0.0.0/0
# protocol: tcp udp
#} # last line, block everyone else. This is the default but if you provide
# one yourself you can specify your own logging/actions
#block {
# from: 0.0.0.0/0 to: 0.0.0.0/0
# log: connect error
#} # route all http connects via an upstream socks server, aka "server-chaining".
#route {
# from: 10.0.0.0/8 to: 0.0.0.0/0 port = http via: socks.example.net port = socks
#} #Where are we going to log all those useful error messages?
logoutput: /var/log/dante.log #What ip and port should Dante listen on,
# since I am only going to be using this via SSH
#I only want to allow connections over the loopback
internal: tun0 port = 1080
#这里 tun0 为面向openvpn流量的源网卡 #Bind to the eth0 interface
external: eth1
#这里eth1为 面向 内网的网卡 #Since I am only accepting connections over the loopback,
# the only people that COULD connect
# would already be authenticated,
# no need to have dante authenticate also
method: username none #Which unprivileged user will Dante impersonate if need-be?
user.notprivileged: nobody # Who can access this proxy?
# Accept only connections from the loopback, all ports
client pass {
# from: 127.0.0.0/8 port 1-65535 to: 0.0.0.0/0
from: 10.5.18.0/24 port 1-65535 to: 0.0.0.0/0
#这里是 tun0 网卡的网段。
} #Block all other connection attempts
client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
} # Once connected, where can they go?
block {
from: 0.0.0.0/0 to: 127.0.0.0/8
log: connect error
} #Pass from the internal IP to anywhere
pass {
# from: 192.168.0.0/16 to: 0.0.0.0/0
from: 10.5.18.0/24 port 1-65535 to: 0.0.0.0/0
protocol: tcp udp
#这里是 tun0 网卡的网段。
} #Pass from the loopback going anywhere
pass {
#from: 127.0.0.0/8 to: 0.0.0.0/0
from: 127.0.0.0/8 port 1-65535 to: 0.0.0.0/0
protocol: tcp udp
} # Block everything else
block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
nanopi作为SOCKS5 代理,同时也要代理 dns解析,所以,nanopi 还需要设置 内网dns服务器。
dnsmasq 会和 手工指定的内网DNS冲突。(没搞定怎么解决,只能先禁用系统默认DNS )
这里需要屏蔽 NetworkManager.conf 里的 dnsmasq :

然后,手工指定 内网dns server:

再 sudo service restart networking 使其(临时)生效。
期间还发现 内网网卡不会自动 up,需 sudo ifup eth1 使其UP。
然后,可通过
nslookup 内网域名
查看dns是否生效。
(另一种可能的配置, 不修改/etc/resolv.conf ,而是在 /etc/network/interfaces 中设置 eth1的nameserver 选项,ifup时使其自动生效。 但是这种还没试过!)

② 阿里ES服务器 通过 socat转发 tcp:11080 流量至 nanopi的 tcp:1080端口 (配置略)
阿里云服务器的安全管理设置里,要将 tcp:11080 端口放通。
③ 外网主机的浏览器配置 SOCKS5 代理,例如:

随后,浏览器启用代理模式,即可访问nanopi所在内网的 web服务器。
nanopi SOCKS5 代理的更多相关文章
- 利用proxychains在终端使用socks5代理
最近用各种脚本下载东西的时候发现有的站点需要当地IP才能下,比如.....nico, youtube等: 所以就找了下能在终端用socks5代理的工具,最后找到了proxychains,从此再无压力= ...
- http,socks4,socks5代理的区别
HTTP代理 能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80.8080.3128等: SOCKS代理 SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心 ...
- 浏览器插件使用socks5代理
服务端测试,经常会遇到需要通过代理访问的情景,比如公司内网不能访问测试环境,这时可以通过socks5代理来解决. 一.使用Chrome浏览器访问 1. 下载并安装SwitchyOmega插件 ...
- 为 pip install 设置 socks5 代理
参考 How to use pip with socks proxy? 为 pip install 设置 socks5 代理 设置方法: pip install pysocks pip install ...
- 让终端走socks5代理
(2017.9.17更新) 方法1: 在终端中直接运行命令 1 export http_proxy=http://proxyAddress:port 这个办法的好处是简单直接,并且影响面很小(只对当前 ...
- 配置Linux客户端使用socks5代理上网
配置Linux客户端使用socks5代理上网 背景 有访问google或者其他海外网站需求的同学可能大都用过或者听过ss,在Windows.Mac.Android.IOS都有现成可用的客户端来协助 ...
- [原创]K8飞刀20150725 支持SOCKS5代理(内网渗透)
工具: K8飞刀编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/7/26 3:41:11 简介: ...
- 代理服务器polipo;socks5代理转http代理
安装: brew install polipo 使用: To have launchd start polipo now and restart at login: brew services sta ...
- http代理和SOCKS5代理的区别
HTTP代理:能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80.8080.3128等:SOCKS代理:SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心是 ...
- socks5代理使用和安装配置
Socks简介: 详情可以百度,不过我猜你对那一大堆术语也会像我一样觉得无语, 所以我觉得你可以简单理解为它可以比较完美代理http/ftp/smtp等多种协议的代理工具就行了. 其中最具有典型例子的 ...
随机推荐
- STM32F4寄存器串口DMA汇总
1.初始化 //RCC RCC->APB1ENR|=1<<20; //使能串口5时钟 RCC->APB1ENR|=1<<19; //使能串口4时钟 RCC-> ...
- STM32F0库函数初始化系列:PWM输出
void TIM1_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_Time1BaseStructure; TIM_OCInitTypeDef TI ...
- UBUNTU18.04安装使用ORB-SLAM2
1.下载: git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 2.依赖项: sudo apt install autotools ...
- 调用后台接口实现Excel导出功能以及导出乱码问题解决
实现效果 在导出表格数据的时候,通常分为两种情况 页面列表数据导出 接口返回数据导出 这里主要介绍接口返回数据导出,关于页面的列表数据导出,请看另一篇:vue3+element表格数据导出 接口返回数 ...
- Nacos服务发现原理分析
微服务将自己的实例注册到nacos注册中心,nacos服务端存储了注册列表,然后通过ribbon调用服务,具体是如何调用?如果nacos服务挂了,还能正常调用服务吗?调用的服务列表发生变化,调用方是如 ...
- P6329 【模板】点分树 | 震波
\(\text{Solution}\) 点分树就是将点分治过程中的重心连成一棵虚树 对点分树子树信息的记录,就是点分治处理每个重心时需要的信息 这样就可以留下点分治的过程,支持多次修改和查询 点分树树 ...
- CenterOS7上搭建RabbitMQ集群
1 保证多个主机之间能够互相访问 修改host , vi /etc/hosts 例如修改成下面的内容: 192.168.10.157 rabbitmq-1 192.168.10.159 rabbitm ...
- 代码随想录算法训练营day14 | leetcode 层序遍历 226.翻转二叉树 101.对称二叉树 2
层序遍历 /** * 二叉树的层序遍历 */ class QueueTraverse { /** * 存放一层一层的数据 */ public List<List<Integer>&g ...
- Java对象布局
1. 引言 由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是 ...
- Python3中Super函数的使用
Super函数用法 主要用于调用父类函数 代码演示 class A: def __init__(self): self.n = 2 print('此时执行A的自定义函数,self的n值为',self. ...