使用 frp 访问内网的 http 服务

今天给大家分享下怎么把本机的 web 服务映射到公网去访问,在做项目的时候,我们如果需要临时给其他同事进行分享,而不想直接扔到测试机,进行调试,可以使用frp 映射 http 端口到公网 ip 访问。具体步骤如下。

服务端配置文件

[root@CTN-QD-247 ~]# cat /etc/frps_www.ini
# frps.ini
[common]
bind_port = 8000 # frp 的进程端口
vhost_http_port = 8888 #访问的端口,如果80端口未被占用,可以使用80。

[web]
type = http
custom_domains = upyun.v5linux.com #访问的域名,需要做好 A记录解析。
auth_token = 123 #token 需要与客户端一致

upyun.v5linux.com 需要做下解析 做 A 记录 解析到公网 IP

启动服务端

nohup /usr/bin/frps -c /etc/frps_www.ini >> /var/log/frps_www.ini &

查看日志信息,我没指定重定向到文件,默认会在当前目录创建一个nohup.out的文件,查看信息

[root@CTN-QD-247 ~]# cat nohup.out
2017/05/04 17:06:26 [main.go:163] [E] Create vhost http listener error, listen tcp 0.0.0.0:8080: bind: address already in use #  提示端口被占用,换个端口或者解决端口被占用的问题
2017/05/04 17:08:49 [main.go:194] [I] Start frps success #表示启动成功

客户端

内网机器需要开启 http 服务,查看客户端配置文件。

[root@vm-50-156 default]# cat /etc/frpc_www.ini
# frpc.ini
[common]
server_addr = xxxx #服务器的 ip 地址
server_port = 8000 # 与服务器一致
auth_token = 123 #与服务器一致

[web]
type = http #服务类型是 web 服务
local_port = 80 #本地的 web 服务端口

启动客户端

[root@vm-50-156 default]# nohup /usr/bin/frpc -c /etc/frpc_www.ini >>/var/log/frpc_www.log &

开启防火墙

上面配置文件中的这些个端口全部都放行

iptables -A INPUT -p tcp --dport port -j ACCEPT

访问

http://upyun.v5linux.com:8888

把上面的运行命令写到/etc/rc.local 文件中 并且赋予这个文件可执行文件,每次开机就自动启动了。

本文参考文档 配置,具体可以参考文档