搜索
您的当前位置:首页正文

内网穿透环境搭建

来源:知库网

虽然现在的内网穿透工具,如:花生壳和ngrok,都做的不错,而且还免费,但是了,每次启动域名都不一样,访问速度慢,有些时候我们必须用ip访问,用时候要用到tcp转发,所以了,我们有必要自己搭建内网穿透的环境。


环境准备

  • 一台公网ip的服务,需要安装nginx
  • 一台局域网服务器,需要支持ssh,要进一步转发到其他物理机的话,需要nginx或者做端口转发

公网服务器

  • 开放7689端口,做tunnel通道,给nginx开放80端口
  • nginx版本要在1.9以上,因为要用到stream模块,做tcp转发的
./configure --with-stream

tcp转发配置

stream {
    upstream backend {
        server 127.0.0.1:7689;
    }
    server {
        listen 80;
        proxy_connect_timeout 8s;
        proxy_timeout 24h;
        proxy_pass backend;
    }
}
http {
    upstream tunnel {
      server 127.0.0.1:7689;
    }

    server {
        listen       80;
        server_name  wechat.akpay.top;

        location / {
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            
            proxy_pass http://tunnel;
        }
    }
}

局域网机器

局域网机器可以说linux,window,mac,这里以mac为例

  • 局域网用ssh命令连接公网服务器
ssh -o ServerAliveInterval=30 -vnNT -R 7689:localhost:8080 root@公网服务器ip -p 50004
  • ServerAliveInterval为心跳包时间,用本地的8080端口连接公网服务器的7689端口,-p 是设置跳板机的端口,没有可以不设置
  • ip或者域名 => 公网服务器的80端口 => 公网7689 => 局域网8080

进一步扩展

有时候,要测试的机器可能是手机或者其它物理机,需要做进一步转发,这里可以用nginx,如果局域网为linux或者mac,

Top