利用frp通过自定义域名访问部署于内网的 web 服务
有时想要让其他人通过域名访问或者测试我们在本地搭建的 web 服务,但是由于本地机器没有公网 IP,无法将域名解析到本地的机器,通过 frp 就可以实现这一功能,以下示例为 http 服务,https 服务配置方法相同, vhost_http_port 替换为 vhost_https_port, type 设置为 https 即可。
注:frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
1.首先先下载frp压缩包,服务器和本地客户端都需要下载,服务器需要用到的是frps,客户端用到的是frpc,这里我是在https://github.com/fatedier/frp/releases开源网站上下载的,还要根据自己服务器系统版本下载,这里我服务器系统是linux,.,
自己电脑是win10。
2.服务器端
下载frp linux版,上传到服务器并解压到/home/ubuntu下,
执行命令:vim frps.ini 修改配置文件
# frps.ini
[common]
bind_port = 7000 //bind_port为frp对客户端的端口号
vhost_http_port = 8080 //服务器使用的端口
修改完后,执行:./frps -c ./frps.ini
3.本地客户端
本地上下载window版,解压后
修改frpc.ini文件,
# frpc.ini
[common]
server_addr = x.x.x.x //服务器ip
server_port = 7000 //访问端口,与服务器frps.ini里设置的一致
[web]
type = http
local_port = 80 //本地网站项目使用的端口
custom_domains = www.yourdomain.com //公网服务器绑定域名(必须)
修改后执行命令行 ./frpc -c ./frpc.ini
就可通过公网服务器访问本地的web服务
以上是通过公网访问内部web服务器以http方式
以下就是公网通过ssh访问内部服务器,远程登录到内部服务器上
配置前准备
配置服务端(公网服务器)
先解压到服务端目录下(我存放的是/home/ubuntu),接着留下 frps 和 frps.ini 两个文件就可以了,其他删掉
然后配置frps.ini文件如下 (vim frps.ini)
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 8080 #访问客户端web服务自定义的端口号 ,上面访问web服务才用的到,但这里写着也不影响
保存退出后执行:./frps -c ./frps.ini
配置客户端(内网服务器)
- [common]
- server_addr = 120.56.37.48 #公网服务器ip
- server_port = 7000 #与服务端bind_port一致
- #公网通过ssh访问内部服务器
- [ssh]
- type = tcp #连接协议
- local_ip = 192.168.3.48 #内网服务器ip(可以是127.0.0.1, 也可以是本机内网地址192.168.3.48,)
- local_port = 22 #ssh默认端口号
- remote_port = 6000 #自定义的访问内部ssh端口号(如:连接 120.56.37.48 :6000 就是连接到 192.168.3.48:22 就能远程访问到内网服务器了)
保存退出后执行:./frpc -c ./frpc.ini
两边全都执行后你就可用外网主机来远程登录到我们的内部服务器进行控制啦
如: 外网主机ubuntu上执行 ssh x.x.x.x(公网ip) -p 端口号(上面的6000)
或者通过xshell也可以连接到内网服务器上