通过自定义域名访问部署于内网的 web 服务
准备工具:
云服务器一台(需要配资安全组开放下文中服务端设置的端口号,如7000,8080)
域名一个(配制好与云服务器的关系)
frp安装包下载:https://github.com/fatedier/frp/releases
选择对应版本
场景需求:有时想要让其他人通过域名访问或者测试我们在本地搭建的 web 服务,但是由于本地机器没有公网 IP,无法将域名解析到本地的机器,通过 frp 就可以实现这一功能,以下示例为 http 服务,https 服务配置方法相同, vhost_http_port 替换为 vhost_https_port, type 设置为 https 即可。
开始配置:
下载好的frp安装包放到想要的位置然后解压:tar -zxvf frp_0.29.1_linux_amd64.tar.gz
接下来开开始配置
- 服务端:修改 frps.toml文件,设置 http 访问端口为 8080:
[common]
bindPort = 7000
vhostHTTPPort = 8080
2、启动 frps服务端,切换到frp根目录下
启动并输出日志
./frps -c ./frps.toml
或者使用后台启动命令
# 不需要日志
nohup ./frps -c frps.toml >/dev/null 2>&1 &
# 需要日志并输出至frps.log中
nohup ./frps -c frps.toml >frps.log 2>&1 &
3、客户端:在上述git地址下载客户端机器对应版本的压缩包。修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 web 服务对应的端口, 绑定自定义域名 www.xxx.com
:
# frpc.toml
serverAddr = "x.x.x.x"
serverPort = 7000
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["www.example.com"]
4、启动 frpc客户端,切换到frp目录下执行
linux&mac启动并输出日志
./frpc -c ./frpc.toml
linux&mac或者使用后台启动命令
nohup ./frpc -c ./frpc.toml >/dev/null 2>&1 &
windows11&10启动命令通过window powershell切换到frp所在目录执行
.\frpc.exe -c .\frpc.toml
5、将 www.xxx.com
的域名 A 记录解析到 IP x.x.x.x
,如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。
6、通过浏览器访问 http://www.xxx.com:8080
即可访问到处于内网机器上的 web 服务。
以上配置为最简化版本,有更多需求可执行增加配置。声明本文参考一下两篇文章此处为整理记录,感谢大侠分享: