文章目录
- ssh命令建立SOCKS5代理服务器
- 一、ssh命令建立SOCKS5代理服务器
- 二、停止ssh 开启的socks代理
- 三、测试SOCKS5 服务是否正常
- 1. 通过socket.sendUrgentData(0xff);来检测是否与服务端连通
- 2. 通过具体的应用软件测试,举例filezilla client
- 四、参考
ssh命令建立SOCKS5代理服务器
一、ssh命令建立SOCKS5代理服务器
1
2ssh -f -N -D bindaddress:port name@server
bindaddress :指定绑定ip地址
port : 指定侦听端口
name: ssh服务器登录名
server: ssh服务器地址
-N 选项确保ssh保持空闲状态,并且不在主机上执行任何命令。(不执行shell)
-D 端口上的动态端口转发
(Specifies a local “dynamic” application-level port forwarding.Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server.)
-f 作为守护进程进入后台
举例1:假设把一个树莓派作为SOCKS5代理服务器,该树莓派的IP地址是192.168.4.160,SOCKS5的端口7070,在树莓派中输入如下命令:
ssh -f -N -D 192.168.4.160:7070 pi@127.0.0.1
这样就建立了SOCKS5代理。
举例2:
1
2ssh -f -N -D 0.0.0.0:1080 she@127.0.0.1
访问控制可以通过实现iptables。例如,要仅允许来自ip的1.2.3.4人员使用SOCKS5代理,请添加以下iptables规则:
1
2
3iptables -A INPUT --src 1.2.3.4 -p tcp --dport 1080 -j ACCEPT iptables -A INPUT -p tcp --dport 1080 -j REJECT
第一条规则说,允许任何人1.2.3.4连接到端口1080,另一条规则说,拒绝其他所有人连接到端口1080。
二、停止ssh 开启的socks代理
命令会在后台运行,可以通过ps aux | grep ssh查看进程是否在正常运行。
如果需要关闭进程,杀掉运行的进程即可
三、测试SOCKS5 服务是否正常
1. 通过socket.sendUrgentData(0xff);来检测是否与服务端连通
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39package socks5; import java.net.Socket; /** * java之socket的OOBInline和UrgentData和发送心跳包研究 * 参考URL: https://blog.csdn.net/u011068702/article/details/53413325 * * UrgentData可以理解为紧急发送数据方式,如果我们客户端先用write方法写入数据,再用UrgentData发送数据,再去执行flush操作, * 我们可以得到服务端先打印UrgentData发送的数据,然后再打印write写入的数据。 * * 说明使用sendUrgentData方法发送数据后,系统会立即将这些数据发送出去;而使用write发送数据,必须要使用flush方法才会真正发送数据。 * * 我们还可以通过socket.sendUrgentData(0xff);来检测是否与服务端连通,和ping IP 效果差不多, * 其它的socket.isConnected() socket.isOutputShutdown()都是本地检测 */ public class TestClient { public static void main(String[] args){ System.out.println(isConnected()); } @SuppressWarnings("resource") public static boolean isConnected(){ Socket socket; try{ socket=new Socket("11.12.117.101", 1080); //往输出流发送一个字节的数据,只要对方Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节, // 而SO_OOBINLINE属性默认情况下就是关闭的 socket.sendUrgentData(0xFF); return true; }catch(Exception e){ return false; } } }
2. 通过具体的应用软件测试,举例filezilla client
1)编辑–>设置,如下,配置socks5服务器相关信息。
2)填写ftp 地址,进行ftp连接。
11.12.112.184 是真实FTP地址
11.12.117.101 是socks5代理服务器地址。
如下连接日志,可以看到,filezilla client自动会连接代理服务器建立连接。
FTP服务端看到的是你socks代理服务器ip地址。
四、参考
SSH搭建Socks Proxy
参考URL: https://www.jianshu.com/p/274b691f672d
最后
以上就是鲤鱼火龙果最近收集整理的关于利用ssh命令建立SOCKS5代理服务器ssh命令建立SOCKS5代理服务器的全部内容,更多相关利用ssh命令建立SOCKS5代理服务器ssh命令建立SOCKS5代理服务器内容请搜索靠谱客的其他文章。
发表评论 取消回复