我为什么要使用frp进行内网穿透
家里的设备位于简单的局域网内,比较好操作,但是公司的电脑则位于一个很复杂的局域网内,想要实现远程桌面和文件访问,试过向日葵、TeamViewer、蒲公英。但是免费版的限制太多,达不到理想的使用需求。
frp
是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。
准备操作
我们需要一台具有公网的服务器或者一台主机,我使用的是腾讯云年中大促期间推出的轻量级服务器,机房在国内,访问速度还不错。
服务端
SSH连接至服务器,使用arch
查看处理器架构,如果是x86_64则选择amd64的版本。
[root@VM-0-9-centos ~] arch
x86_64
下载
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_arm64.tar.gz
解压
tar -zxvf frp_*_linux_amd64.tar.gz
修改名字,方便使用
mv frp_*_linux_amd64 frp
进入该目录
cd frp
查看文件
[root@VM-0-9-centos frp] ls -a
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
frpc开头的文件代表客户端的程序和配置文件,frps开头的文件则代表服务端的程序和配置文件。我们在服务器上进行配置删除客户端的文件就行了。
rm -f frpc*
接下来修改服务端的配置文件
[root@VM-0-9-centos frp] vim frps.ini
[common]
bind_port = 7000
# 默认只有一行下面的需要手动添加
dashboard_port = 7500
dashboard_user = admin # 仪表盘账号
dashboard_pwd = admin # 仪表盘密码
token = 12345678
- "bind_port" 用于客户端和服务端连接的端口,配置客户端的时候要用到。
- "dashboard_port" 是服务端仪表板的端口, 可以通过
ip:端口
访问, 查看frp服务运行信息。 - "dashboard_user"和"dashboard_pwd" 是登录仪表盘的账号密码,自行设置。
- "token" 是用于客户端和服务端连接的口令,请自行设置并记录,配置客户端的时候要用到。
修改后保存,服务器防火墙记得放行相关端口。
服务端后台运行
使用nohup
命令在后台运行。
nohup ./frps -c frps.ini &
运行后输出
nohup: 忽略输入并把输出追加到"nohup.out"
服务端即设置完成 ,Ctrl+C退出前台运行。
客户端
在Github下载windows版本,解压后打开frpc.ini
并编辑。
[common]
server_addr = xx.xxx.xx.xxx # 你的服务器ip
server_port = 7000 # 服务端设置的端口
token = 12345678 #服务端设置的token
[rdp]
type = tcp
local_ip = 127.0.0.1 # 本地ip
local_port = 3389 # 本地连接端口
remote_port = 1234 # 服务端开放的端口
配置完成frpc.ini后,就可以运行frpc了,使用Cmder进入解压目录。
cd D:\frp
执行./frpc -c frpc.ini
或start frpc.exe
运行frpc程序,窗口中输出如下内容表示运行正常 。
2021/08/03 20:53:25 [I] [proxy_manager.go:144] proxy added: [rdp]
2021/08/03 20:53:25 [I] [control.go:180] [rdp] start proxy success
打开远程桌面设置
,打开远程桌面选项,设置允许远程访问桌面的用户。
不要关闭窗口,在其他设备使用远程连接工具访问ip:remote_port
(例:192.168.0.1:1234)
开机自启以及后台运行
新建文本文档,将下面的脚本粘贴进去,记得修改相关路径,另存为frp.bat
@echo off
if "%1" == "h" goto begin
start mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
# 上面四行比较重要,不要修改或删除
echo "frp已启动"
cd D:\frp\ # 文件的绝对路径
start /b frpc.exe # 程序名
右键frp.bat
发送到桌面快捷方式,把桌面的快捷方式放到自己电脑的开机自启目录下
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
大功告成,重启电脑,即可远程访问。
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1osa3wotuwgrc