Skip to content

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