通过FRP搭建内网穿透,实现域名访问局域网本机

实现通过域名访问局域网tomcat服务,域名访问方便本地微信调试

(1)用服务器搭建内网穿透

利用FRP实现穿透,frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

详细搭建教程见后文

(2)通过宽带,找运营商免费申请公网IP

路由或猫有了拨号后,即可获得公网IP,再由路由或猫映射到内网机器端口

由于普通宽带是动态IP,所以如果要全自动切换或查询,则需要动态获取IP,思路如下

(3)通过现成内网穿透软件

比如花生壳,natapp,想要速度快、域名固定,则需要付费,

免费速度很慢,域名总变

思路流程见上文2.(1)

(1)域名映射到服务器IP

(2)nginx监听域名,并转发到服务器FRP

我需要用https协议,所以监听443端口,并转发到FRP服务端IP:28700

server { listen 443 ssl; server_name 你的域名; root html; index index.html index.htm; ssl_certificate cert/你的域名证书.pem; ssl_certificate_key cert/你的域名证书.key; ssl_session_timeout 60m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #表示使用的加密套件的类型。 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。 ssl_prefer_server_ciphers on; location / { #root /usr/share/nginx/html/; #Web网站程序存放目录。 #index index.html index.htm; proxy_pass http://FRP服务端IP:28700/; proxy_redirect http:// $scheme://; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

(3)服务器用docker 搭建FRP的服务端

服务器新建frps.ini配置文件

[common] bind_port = 7000 vhost_http_port = 28700 authentication_method = token authenticate_new_work_conns = true token = 123456

28700端口用于接收nginx转发的访问请求

7000端口用于frp服务端接收请求后 与 内网frp客户端的7000通信

token是自定义秘钥,用于安全校验

在服务器上,通过docker拉取FRP的服务端并启动

docker run --name frps -d -p 28700:28700 -p 7000:7000 -v /docker/frp/frps.ini:/etc/frp/frps.ini -v /etc/localtime:/etc/localtime:ro -e "TZ=Asia/Shanghai" snowdreamtech/frps

(4)windows本机FRP客户端搭建

我用的frp_0.46.0_windows_386.zip,

然后新建frpc.ini

[common] server_addr = 服务器公网IP server_port = 7000 authentication_method = token authenticate_new_work_conns = true token = 123456 [web] type = http local_port = 80 custom_domains = 域名

7000用于与服务器保持通信

80端口为本机服务端口,域名是最上面那个域名

然后cmd下启动frp客户端,也可以保存为bat,方便启动

frpc.exe -c frpc.ini

这样就实现了域名访问到本机80端口服务

帮助文档详见:

这个示例通过简单配置 TCP 类型的代理让用户访问到内网的服务器。

这个示例通过简单配置 HTTP 类型的代理让用户访问到内网的 Web 服务。

这个示例通过简单配置 UDP 类型的代理转发 DNS 查询请求。

这个示例通过配置 Unix域套接字客户端插件来通过 TCP 端口访问内网的 Unix域套接字服务,例如 Docker Daemon。

这个示例通过配置 static_file 客户端插件来将本地文件暴露在公网上供其他人访问。

通过 https2http 插件可以让本地 HTTP 服务转换成 HTTPS 服务对外提供。

这个示例将会创建一个只有自己能访问到的 SSH 服务代理。

这个示例将会演示一种不通过服务器中转流量的方式来访问内网服务。

(1)docker frp项目地址

项目地址:

DockerHub:

(2)FRP项目地址

(3)中文帮助文档:

原文链接:https://blog.csdn.net/yfx000/article/details/129307311

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享