实现内网穿透的几种方式

竹林之风4周前 (09-30)技术积累77

        大部分普通电脑对外都没有固定的公网IP、或处于NAT网络内,要从局域网外直接访问该电脑,需要借助第三方工具。

一、有一台公网固定IP服务器的情况

1、Nginx

        Nginx具有4层/7层的反向代理的功能,我们可以利用该特性实现向内网计算机的请求转发,具体实现方式为通过conf/nginx.conf配置文件的stream、http节实现。

        所有基于TCP/UDP协议的相关上层协议都可以通过如下配置转发,以下代码表示通过本服务器的13389端口转发到内网计算机192.168.1.100的3389远程桌面端口。

stream{
    upstream rd_100{
        server 192.168.1.100:3389;//定义上游服务器的IP和端口
    }
    server{
        listen 13389;
        proxy_pass rd_100;
    }
}

        而HTTP、HTTPS可通过如下配置转发,以下代码表示通过本服务器80端口绑定主机名www.test.com并转发到内网计算机192.168.1.100的8080端口

http {
    upstream internal_server {   
      server 192.168.1.100:8080;//定义上游服务器的IP和端口
    }
    server {
        listen       80;
        server_name  www.test.com;

        location / {
            proxy_pass  http://internal_server/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }    
}

2、VPN服务

        在本服务器上安装并开放VPN服务,内网计算机加入该VPN,且其它计算机也加入VPN即可访问。

3、代理服务器

        在本服务器上安装并开放代理服务,其它计算机设置代理访问。

4、FRP等第三方内网穿透工具

         分别设置服务端配置文件frps.ini和客户端配置文件frpc.ini。

[common]

bind_port = 7000

dashboard_port = 7500
# dashboard's username and password are both optional
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

authentication_method = token

token = admin
[common]
server_addr = *.*.*.*
server_port = 7000

admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

authentication_method = token
token = admin

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 13389

5、其它

二、没有一台公网固定IP服务器的情况

1、蒲公英等组网软件

        本质上是由第三方提供公网固定IP服务器的VPN服务。

2、花生壳等内网映射软件

3、其它

标签: 安全网络

相关文章

从被扫描记录看网站安全应该注意的一些细节

1、尽可能地隐藏服务器真实IP,减少攻击目标。例如使用负载均衡、网关等作为门户,由负载均衡或网关转发到后端服务器。2、服务器必须开放的服务(除HTTP、HTTPS等为公众开放的服务外),尽可能改为其它...

ASP.NET网站自定义错误处理及其它安全相关

        ASP.NET网站在运行过程中总是有可能报错,例如404等HTTP错误、500等程序异常。在IIS托管并报错的情况下,网站的默认行为依次是:(1...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。