Frp远程搭建
frp远程搭建
- what: frp远程搭建
- where: centos7、x86
- when: 2022-3-16
- who: JRT
- why: 记录
- version: 0.37.1
- how:
1.前提
frp(项目主页) 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。名称其实就是使用了 Fast Reverse Proxy 的首字母缩写.本次主要是通过一个eip及服务器实现家里电脑远程连接,类似向日葵、todesk等软件。
#需要服务器随便开放3个端口,如(9011、9012、9013)
9011:服务器代理端口bind_port
9012:服务器控制面板端口号dashboard_port
9013:客户端映射到服务端的端口范围(公网服务器可用的端口,1-66535)remote_port
2.下载安装包
windows服务端/客户端下载地址:点此下载
https://starcheng.oss-cn-hongkong.aliyuncs.com/frp_0.36.2_windows_amd64.zip
linux服务端和windows客户端下载地址:点此下载
https://starcheng.oss-cn-hongkong.aliyuncs.com/linux服务端和windows客户端.zip
3.服务端
3.1 启动
[root@JRT frp]# pwd
/data/frp
[root@JRT frp]# vim frps.ini
[root@JRT frp]# cat frps.ini
[common]
bind_addr = 0.0.0.0
#服务器代理端口
bind_port = 9011
#与客户端进行校验的令牌
token = 123456789
#控制面板的账号
dashboard_user = admin
#控制面板的密码
dashboard_pwd = 123456
#控制面板端口号
dashboard_port = 9012
[root@JRT frp]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
#启动frp服务端
[root@JRT frp]# ./frps -c ./frps.ini
2022/03/16 21:05:05 [I] [root.go:200] frps uses config file: ./frps.ini
2022/03/16 21:05:05 [I] [service.go:192] frps tcp listen on 0.0.0.0:9011
2022/03/16 21:05:06 [I] [service.go:294] Dashboard listen on 0.0.0.0:9012
2022/03/16 21:05:06 [I] [root.go:209] frps started successfully
3.2后台启动
[root@JRT frp]# vim /usr/lib/systemd/system/frps.service
[root@JRT frp]# cat /usr/lib/systemd/system/frps.service
[Unit]
Description=frps
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/data/frp/frps -c /data/frp/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@JRT frp]#
[root@JRT frp]# pwd
/data/frp
[root@JRT frp]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
#开机自启动
[root@JRT frp]# systemctl daemon-reload
[root@JRT frp]# systemctl enable frps
Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /usr/lib/systemd/system/frps.service.
[root@JRT frp]# systemctl start frps
#查服务
[root@JRT frp]# ps -aux | grep frps
root 14092 0.0 0.4 718556 16696 pts/0 Sl+ 21:05 0:00 ./frps -c ./frps.ini
root 17769 0.0 0.0 115928 1004 pts/1 S+ 21:18 0:00 grep --color=auto frps
[root@JRT frp]#
测试

4.客户端

cat frpc.ini
[common]
# 配置服务器IP地址
server_addr = 1.117.176.116
#配置服务端监听的端口,与服务端的bind_port端口保持一致
server_port = 9011
#服务端配置token,将服务端配置的token复制到此处
token = 123456789
pool_count = 5
#这里是配置端口范围转发
[range:services]
#类型为tcp
type = tcp
#本地ip地址通常为127.0.0.1
local_ip = 127.0.0.1
#本机的远程端口,默认为3389
local_port = 3389
#映射到服务端的端口范围(公网服务器可用的端口,1-66535)
remote_port =9013
PS D:\frp> .\frpc.exe -c frpc.ini
2022/03/16 21:31:27 [I] [service.go:304] [c337e6da50f01cf0] login to server success, get run id [c337e6da50f01cf0], server udp port [0]
2022/03/16 21:31:27 [I] [proxy_manager.go:144] [c337e6da50f01cf0] proxy added: [services_0]
2022/03/16 21:31:27 [I] [control.go:180] [c337e6da50f01cf0] [services_0] start proxy success
通过win的"mstsc"服务进行测试

5.客户端后台执行
方法一:
cat winsw.xml
#修改<executable>D:\frp\frpc.exe</executable>为真实地址
<service>
<id>frp</id>
<name>frp</name>
<description>frpc</description>
<executable>D:\frp\frpc.exe</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>append</logmode>
<logpath>logs</logpath>
</service>
管理员模式运行命令提示符,切到到文件路径后,执行 "winsw.exe install"
PS D:\frp> .\winsw.exe install
2022-03-16 22:18:24,756 INFO - Installing service 'frp (frp)'...
2022-03-16 22:18:24,769 INFO - Service 'frp (frp)' was installed successfully.
PS D:\frp>
方法二: 在frp 目录下,新建一个start.bat的文件,复制下面内容进去,最下面“D:\FRP\”是绝对路径,根据自己的情况进行替换,如果是服务端就把frpc.exe更改为frps.exe
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
D:\frp\frpc.exe -c D:\frp\frpc.ini
加start.bat添加进开机服务,右键【此电脑】-【管理】-【任务计划程序】-【创建任务】,并按引导进行操作,然后确定即可。
6.frp命令
winsw.exe install //注册
winsw.exe uninstall //卸载
winsw.exe start //启动
winsw.exe stop //停止
winsw.exe restart //重启
winsw.exe status //查看状态
7.参考
https://starcheng.xyz/791.html