frp是一个高性能的反向代理应用,可用于内网穿透,对外网提供服务。
可以在 https://github.com/fatedier/frp
找到文档和下载地址。
frp分为服务端(frps)和客户端(frpc),服务端运行在公网服务器上,客户端运行在内网服务器或电脑上。
为了方便说明,我们这里假设内网ip地址为10.10.10.10,
服务端配置
下载 frp程序
并解压,把 frps
复制到 /usr/bin/ 目录里面。
编写配置文件,注意修改privilege_token为较复杂的密码。
vi /etc/frps/frps.ini
[common]
bind_port = 7000
vhost_http_port = 80
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123[ssh]
listen_port = 6000
auth_token = 123[web01]
type = http
custom_domains = web01.vinew.cc
auth_token = 123[web02]
type = http
custom_domains = web02.vinew.cc
auth_token = 123
注意:custom_domains
为要映射的域名,记得域名的A记录要解析到外网主机的IP。
使用systemd配置开机自启,适用于 Ubuntu 16 或 debian 8
vi /etc/systemd/system/frps.service
[Unit]
Description=frps daemon[Service]
Type=simple
ExecStart=/usr/bin/frps -c /etc/frps/frps.ini[Install]
WantedBy=multi-user.target
启动并设为开机自启
systemctl start frps
systemctl enable frps
现在用浏览器访问服务器的7500端口就能看到dashboard了。
客户端配置
下载 frp程序
并解压,把 frpc
复制到 /usr/bin/目录里面。
编写配置文件,common部分是必须有的(其中两个值需要按你的情况修改),其他部分可以有任意多个。
cd /usr/bin/frpc
vi frpc.ini
[common]
server_addr = 服务端ip地址
server_port = 7000
auth_token = 123[ssh]
local_port = 22[web01]
type = http
local_port = 5000[web02]
type = http
local_port = 80
启动客户端
frpc -c frpc.ini
这样就完成了内网穿透,映射关系如下:
外网 | 内网 |
---|---|
外网ip:6000 | 10.10.10.10:22 |
web01.vinew.cc | 10.10.10.10:5000 |
web02.vinew.cc | 10.10.10.10:80 |
(不要尝试连接这里的示范,上诉案例仅为方便说明,并无实例。)