0x00 惯例找起因

由于有需求访问自己在国内家里的局域网,然而家里穷,又不是专线,辣鸡移动又死活没法给公网IP,于是一个端口转发/映射实现的需求应运而生。本来以为 V2Ray自带的dokodemo-door可以直接拿来用,毕竟要过境访问,直接ssh tunnel或者ngrok之类估计效果不佳,所以又到了编程小白用奇技淫巧实现需求的时候(自己造轮子什么的多麻烦,反正要求是能通就行,求诸位dalao不要在评论去喷性能辣(逃(滑稽

0x01 实现

所以具体操作就是。。本地V2Ray正常配客户端,添加一个dokodemo-door的inbound把服务器的22端口映射到本地。然后本地再SSH Tunnel到映射到本地的远程22端口的端口。
(最近说话真的不知道为啥就是容易绕。。。勿怪)(反正会看我文章的估计也不会管前面的,都是来直接复制粘贴命令的吧(这么白的东西))
当然你也可以选择其他任何基于TCP的网络服务对外开放,比如ngrok一样可以达到向外端口映射的功能。(不用是因为1 配置麻烦 2 需要单独证书 3 停止开源了不清真(

不多说了直接丢 V2Ray 配置:

{
      "protocol": "dokodemo-door",
      "port": [forwarded_ssh_port],
      "settings": {
         "address": "[remote_host]",
         "port": [remote_ssh_port],
         "network": "tcp,udp",
         "timeout":0
      }
    }

以及 SSH Tunnel 命令

ssh -C -f -N -R [remote_service_port]:0.0.0.0:[local_service_port] user@[local_host] -p [forwarded_ssh_port]

另外,部分服务器上要把sshd的GatewayPorts打开才可以从公网连入相应端口。

0x03 速度测试

user@local_host:~$ iperf3 -s -p 2526
user@local_host:~$ ssh -C -f -N -R 2526:0.0.0.0:2526 root@127.0.0.1 -p 2222
user@remote_host:~$ iperf3 -c 127.0.0.1 -p 2526 -R -n 100M -i 5
测试结果
测试环境:华东某省移动家宽20Mbps + DGCHOST 香港
Connecting to host 127.0.0.1, port 2526
Reverse mode, remote host 127.0.0.1 is sending
[  4] local 127.0.0.1 port 55064 connected to 127.0.0.1 port 2526
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-5.00   sec  11.5 MBytes  19.3 Mbits/sec                  
[  4]   5.00-10.00  sec  12.7 MBytes  21.4 Mbits/sec                  
[  4]  10.00-15.00  sec  12.5 MBytes  21.0 Mbits/sec                  
[  4]  15.00-20.00  sec  11.0 MBytes  18.4 Mbits/sec                  
[  4]  20.00-25.00  sec  7.38 MBytes  12.4 Mbits/sec                  
[  4]  25.00-30.00  sec  8.45 MBytes  14.2 Mbits/sec                  
[  4]  30.00-35.00  sec  6.42 MBytes  10.8 Mbits/sec                  
[  4]  35.00-40.00  sec  10.1 MBytes  17.0 Mbits/sec                  
[  4]  40.00-45.00  sec  9.53 MBytes  16.0 Mbits/sec                  
[  4]  45.00-50.00  sec  8.11 MBytes  13.6 Mbits/sec                  
[  4]  50.00-51.25  sec  2.22 MBytes  14.9 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-51.25  sec   110 MBytes  18.0 Mbits/sec    0             sender
[  4]   0.00-51.25  sec   102 MBytes  16.7 Mbits/sec                  receiver

iperf Done.

0x04 TODO

增加UDP支持

扫描二维码,在手机上阅读!
*本站文章保留所有权利,如需转载请联系me#nicho1as.wang