Skip to content
On this page

FinaShell 反向隧道实现内网穿透

准备:一个已经备案的域名并启用ssl证书

1、centos开启反向隧道

cd /etc/ssh

vim sshd_config

找到以下三项分别配置:

js
GatewayPorts yes        # CentOS7 开启反向隧道
ClientAliveInterval 60  # 保证服务不断开,每60秒自动发送一次请求
ClientAliveCountMax 36000 # 十个小时没有发送请求即自动断开
GatewayPorts yes        # CentOS7 开启反向隧道
ClientAliveInterval 60  # 保证服务不断开,每60秒自动发送一次请求
ClientAliveCountMax 36000 # 十个小时没有发送请求即自动断开

配置完成后重启ssh服务

  • service sshd restart

2、在nginx配置文件添加一项location反向代理,端口号自己确定,在xshell配置中要用到:

  • cd /etc/nginx
  • vim nginx.conf
shell
# https内网穿透
  server {
      listen 443 ssl;
      server_name  nat.chaoszhu.com;
      ssl_certificate 1_nat.chaoszhu.com.crt; # 证书文件名称
      ssl_certificate_key 2_nat.chaoszhu.com.key; # 私钥文件名称
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 请按照这个协议配置
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 请按照这个套件配置
      ssl_prefer_server_ciphers on;
      # https内网穿透
      location / {
          proxy_pass http://127.0.0.1:8000; # 代理到 8000【隧道拦截8000转发至本地xxx】
      }
  }
# https内网穿透
  server {
      listen 443 ssl;
      server_name  nat.chaoszhu.com;
      ssl_certificate 1_nat.chaoszhu.com.crt; # 证书文件名称
      ssl_certificate_key 2_nat.chaoszhu.com.key; # 私钥文件名称
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 请按照这个协议配置
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 请按照这个套件配置
      ssl_prefer_server_ciphers on;
      # https内网穿透
      location / {
          proxy_pass http://127.0.0.1:8000; # 代理到 8000【隧道拦截8000转发至本地xxx】
      }
  }

保存重启nginx服务

  • nginx -s reload

3、配置 FinaShell 隧道规则

image

重新连接服务器

  • exit ---> 再链接

测试是否OK

打开外网域名看是否能正确映射到本地端口

如遇502,则表示隧道端口监听失败. 以上配置确认无误,退出软件重新链接试试