使用otunnel进行内网穿透

之前试了网上说的autossh的方法来转发端口,一直失败,于是换了一种方法。使用otunnel软件来进行内网穿透,比较方便。

适用场景

  • 一台能连外网但是没有公网ip的服务器A,
  • 一台有公网ip的服务器B

期望通过访问服务器B来间接访问服务器A

步骤

服务器B(server)

安装

首先在服务器B上下载otunnel

wget http://dl.ooclab.com/otunnel/1.3.1/otunnel_linux_amd64 
chmod a+x otunnel_linux_amd64 
sudo mv otunnel_linux_amd64 /opt/bin/otunnel

 

然后运行/opt/bin/otunnel listen :10000 -s password即可启动。

加入后台

这里采用issue里面说到的supervisor的方法(没有高贵的ios设备,sigh)

sudo apt install supervisor 
sudo vim /etc/supervisor/conf.d/otunnel.conf

 

粘贴下面的代码:

[program:otunnel-listen]
command=/opt/bin/otunnel listen :10000 -d -s password
autostart=true
autorestart=true
log_stdout=true
log_stderr=true
stdout_logfile=/var/log/otunnel-listen.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=12
redirect_stderr = true</code class="  language-ini">

 

重启supervisor

sudo supervisorctl reload

 

服务器A(client)

安装

首先一样的安装

wget http://dl.ooclab.com/otunnel/1.3.1/otunnel_linux_amd64
chmod a+x otunnel_linux_amd64
sudo mv otunnel_linux_amd64 /opt/bin/otunnel</code class="  language-bash">

 

加入后台

sudo apt install supervisor
sudo vim /etc/supervisor/conf.d/otunnel.conf</code class="  language-bash">

 

粘贴下面代码

[program:otunnel-client]
command=/opt/bin/otunnel connect serverB的IP:10000 -d -s password  -t "r:127.0.0.1:80::80"
autostart=true
autorestart=true
;log_stdout=true
;log_stderr=true
stdout_logfile=/var/log/otunnel.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=12
redirect_stderr = true</code class="  language-ini">

 

重启supervisor

sudo supervisorctl reload

 

然后就完工了!

TODO

转发到服务器B的非80端口,根据访问80的不同域名,来映射不同端口。