frps搭建自己的内网穿透服务器
开发过程中,很多时候我们需要用到内网穿透,将自己的服务器映射到外网,下面说一下怎么用frps搭建自己的内网穿透服务器
frpsGithub地址GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.里面有中文文档,大家可以参考
服务器搭建
服务器搭建服务器是阿里云ECS CenterOS CentOS 7.4 64位
下载frps服务器文件:下载地址/fatedier/frp/releases
选择frp_0.21.0_linux_amd64.tar.gz,如果你是其他操作系统,请自行选择
下载完之后,传到ECS上,然后解压,编辑frps.ini配置文件
[common]# 服务器端端口 bind_port = 7000# 客户端连接凭证privilege_token = fxl421125# 最大连接数 max_pool_count = 5 # 客户端映射的端口 vhost_http_port = 80 # 服务器看板的访问端口dashboard_port = 7500# 服务器看板账户dashboard_user = admindashboard_pwd = fxl123
设置完以上配置,保存退出,然后启动服务器
注意vhost_http_port是代理之后http访问的端口,如果有人服务器端还装了nginx,并且nginx是80端口,那么这里就配置其他端口,然后用nginx进行代理转发即可
./frps -c ./frps.ini
启动之后查看日志, 提示Start frps success基本上就启动成功
/09/04 11:02:49 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
/09/04 11:02:49 [I] [service.go:172] http service listen on 0.0.0.0:8080
/09/04 11:02:49 [I] [root.go:207] Start frps success
客户端搭建
客户端是通常是windows
下载frps客户端文件:下载地址/fatedier/frp/releases
选择frp_0.21.0_windows_amd64.zip 64位文件
然后解压,配置frpc.ini文件,配置如下:
[common]# 服务器地址server_addr = 59.110.161.180# 服务器端口server_port = 7000# 服务器连接凭证privilege_token = fxl123[web]privilege_mode = trueremote_port = 6000type = httplocal_ip = 127.0.0.1# 本地映射的端口local_port = 80use_gzip = true# 绑定域名 域名需要配置好解析,解析到服务器custom_domains =
命令行启动客户端
frpc.exe -c frpc.ini
F:\Program Files\frp_0.21.0_windows_amd64>frpc.exe -c frpc.ini
/09/04 11:39:09 [I] [proxy_manager.go:300] proxy removed: []
/09/04 11:39:09 [I] [proxy_manager.go:310] proxy added: [web]
/09/04 11:39:09 [I] [proxy_manager.go:333] visitor removed: []
/09/04 11:39:09 [I] [proxy_manager.go:342] visitor added: []
/09/04 11:39:09 [I] [control.go:246] [883f61e2422ed3f3] login to server success, get run id [883f61e2422ed3f3], server udp port [0]
/09/04 11:39:09 [I] [control.go:169] [883f61e2422ed3f3] [web] start proxy success
看到如下信息 start proxy success 说明连接成功,此时可以通过7500端口访问服务器的控制面板页面,查看连接情况
客户端可以新建一个start.bat文件,把启动命令放在里面,这样每次直接运行bat文件即可
如果客户端有多个端口需要穿透
[common]# 服务器地址server_addr = 59.110.161.180# 服务器端口server_port = 7000# 服务器连接凭证privilege_token = fxl123[web8080]remote_port = 6001type = tcplocal_ip = 127.0.0.1local_port = 8080[web8081]remote_port = 6002type = tcplocal_ip = 127.0.0.1local_port = 8081
然后通过服务器ip:6001和ip:6002进行访问,同样如果想去掉端口,可以通过服务器nginx做一次代理。
服务器服务后台运行及自动启动
使用systemd配置开机自启,适用于 centos7 Ubuntu 16 或 debian 8。
vi /etc/systemd/system/frps.service 新建此文件,并写入以下内容:
[Unit]Description=frps daemonAfter=syslog.target network.targetWants=network.target[Service]Type=simpleExecStart=/home/developer/frp_0.21.0_linux_amd64/frps -c /home/developer/frp_0.21.0_linux_amd64/frps.iniRestart= alwaysRestartSec=1min[Install]WantedBy=multi-user.target
启动并设为开机自启。
systemctl start frps //启动
systemctl status frps //状态查询
systemctl enable frps //开机启动
补充一下:
ExecStart=/home/developer/frp_0.21.0_linux_amd64/frps.ini
ExecStart=后面这个是frps文件和配置文件<frps_my.ini>所在的目录,根据自己的文件位置修改