服务器搭建frps
SSH连接到VPS之后运行如下命令查看处理器架构,根据架构下载不同版本的frp
arch
查看结果,如果是“X86_64“即可选择”amd64”,
运行如下命令,根据架构不同,选择相应版本并进行下载
wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz
然后解压
tar -zxvf frp_0.22.0_linux_amd64.tar.gz
文件夹改个名,方便使用
cp -r frp_0.22.0_linux_amd64 frp
把解压出来的文件夹复制到你想要的目录下,为了方便我直接放在用户目录下了,进入该目录
cd frp
查看一下文件
ls -a
因为我们正在配置服务端,可以删除客户端的两个文件
rm frpc
rm frpc.ini
然后修改frps.ini文件
vim frps.ini
这个文件应有如下格式
[common] bind_port = 7000 dashboard_port = 7500 token = 12345678 dashboard_user = admin dashboard_pwd = admin vhost_http_port = 10080 vhost_https_port = 10443
“bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。 “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。 “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。 “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。 “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。
服务端后台运行
nohup ./frps -c frps.ini &
输出如下内容即表示正常运行
nohup: ignoring input and appending output to 'nohup.out'
此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序
jobs
在结果中我们可以看到frps正在后台正常运行
[1]+ Running nohup ./frps -c frps.ini &
此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成,你可以关闭SSH窗口了。
客户端搭建frpc(n1)
wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_arm64.tar.gz tar -zxvf frp_0.22.0_linux_arm64.tar.gz cp -r frp_0.22.0_linux_arm64 frp cd frp nohup ./frpc -c frpc.ini &
客户端搭建frpc(docker)
frpc.ini配置文件放在/etc/frp/frpc.ini
docker run –network macnet –ip 192.168.123.10 -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini –name frpc snowdreamtecharm64v8/frpc
frpc.ini配置文件内容如下
[common] server_addr = 104.224.169.215 server_port = 7000 token = 12345678 log_file = frpc.log log_level = info log_max_days = 7 [docker-http] type = http local_ip = 192.168.123.8 local_port = 80 custom_domains = kd.akili.top use_compression = true use_encryption = true [smb] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 9000
此时就可以用kd.akili.top:10080访问192.168.123.8:80内网穿透成功
客户端搭建frpc(windows)
下载了“frp_0.22.0_windows_amd64.zip”,将其解压在了C盘根目录下,并且将文件夹重命名为“frp”,可以删除其中的frps和frps.ini文件。
用文本编辑器打开frpc.ini,与服务端类似,内容如下。
[common] server_addr = 104.224.169.215 server_port = 7000 token = 12345678 [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 7001 [smb] type = tcp local_ip = 127.0.0.1 local_port = 445 remote_port = 7002
其中common字段下的三项即为服务端的设置。
“server_addr”为服务端IP地址,填入即可。 “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000 “token”是你在服务器上设置的连接口令,原样填入即可。 “local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。 “remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。
使用命令提示符或Powershell进入该目录下
cd C:\frp
并执行
./frpc -c frpc.ini
运行frpc程序,窗口中输出如下内容表示运行正常。
2019/01/12 16:14:56 [I] [service.go:205] login to server success, get run id [2b65b4e58a5917ac], server udp port [0] 2019/01/12 16:14:56 [I] [proxy_manager.go:136] [2b65b4e58a5917ac] proxy added: [rdp smb] 2019/01/12 16:14:56 [I] [control.go:143] [smb] start proxy success 2019/01/12 16:14:56 [I] [control.go:143] [rdp] start proxy success
客户端后台运行及开机自启
frpc运行时始终有一个命令行窗口运行在前台,影响美观,我们可以使用一个批处理文件来将其运行在后台,而且可以双击执行,每次打开frpc不用再自己输命令了。
在任何一个目录下新建一个文本文件并将其重命名为“frpc.bat”,编辑,粘贴如下内容并保存。
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\frp
frpc -c frpc.ini
exit
将cd后的路径更改为你的frpc实际存放的目录。
之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。
至于开机启动,把这个 .bat 文件直接扔进Windows的开机启动文件夹就好了 ![]()
至此,客户端配置完成,之后就是你自己根据需要在frpc.ini后追加规则即可。
frp相关命令
更新命令
- ./install-frps.sh update
卸载命令
- ./install-frps.sh uninstall
服务器端管理命令
- /etc/init.d/frps start
- /etc/init.d/frps stop
- /etc/init.d/frps restart
- /etc/init.d/frps status
- /etc/init.d/frps config
- /etc/init.d/frps version