什么是内网穿透
内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机
简单说,通过将内网的端口映射到外网上,可通过外网ip访问内网端口,也就是可以通过外网ip访问本地电脑上的东西
常见的内网穿透工具
收费的
免费
常见的开源的,需要外网服务器,自己配置
nps nps-github地址
frp frp-github
holer holer-github地址
lanproxy-github地址
frp使用
什么是frp
frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持tcp, udp, http, https等协议类型,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网;
下载
去github根据对应的系统下载
下载地址
每个系统都对应着客户端和服务端
frpc是用于客户端,frps是用于服务端
#文件含义
frpc #客户端程序
frpc.ini #客户端配置文件
frpc_full.ini #客户端完整配置文件,包括含义
frps #服务端程序
frps.ini #服务端配置文件
frps_full.ini #服务端端完整配置文件,包括含义
将服务端的文件上传到远程主机上
服务端配置
这里以win为例
打开frps.ini文件进行配置
[common]
bind_port = xxxx #服务端与客户端互通的端口
dashboard_port = xxxx #监控面板端口
dashboard_user = xxxx #监控面板用户名
dashboard_pwd = xxxx #监控面板用户密码
vhost_http_port = xxxx #为http服务访问端口,用于远程端口访问:如www.lhuanblog.com:7001
记得在主机运营商开启对应端口
windows服务器上还需对防火墙进行设置,对端口进行放行。
控制面板
->系统和安全
->Windows Defender防火墙
->高级设置
->入站规则
在入站规则
右键新建规则
这样frp程序运行的端口都可放行,当然,你也可以设置特定端口
设置frp程序地址
后续步骤默认即可
设置完后
运行,以win为例,打开(win+r)cmd->却换到frps.exe的目录下,输入frps.exe -c ./frps.ini
显示
则表示成功
客户端配置
也是同类文件frpc.ini
[common]
server_addr = xxx.xx.xxx.xxx #远程主机ip
server_port = xxxx #与服务端交互的端口 对应服务端的bind_port
[web]
type = http #类型 这里以http为例,实现ip访问 注意:不同类型不同配置:tcp、http
local_port = xxxx #需要访问的本地端口
custom_domains = www.lhuanblog.com #需要映射的远程域名或端口 如:www.lhuanblog.com:vhost_http_port (vhost_http_port为服务端vhost_http_port端口)即可访问本地
运行,和服务端一样(前提是win系统)打开(win+r)cmd->却换到frpc.exe的目录下,输入frpc.exe -c ./frpc.ini
显示
即为成功
现在我们就可以通过配置的custom_domains
+ vhost_http_port
访问本地端口了,如:custom_domains
为www.lhuanblog.com
,服务端中vhost_http_port
为8000
,那么www.lhuanblog.com:8000
那么就可以访问本地的9000
端口