frp内网穿透
最近电脑装上了Windows11专业版,配合远控插座准备试试远程桌面,但是远程桌面需要公网ip才好访问,于是就整上了内网穿透。本来是用的花生壳这款软件,优点是方便快捷,但是1G的流量和宽带多少可能还是不太够用,一天就花了我100MB流量了...所以作为一个程序员,刚好也有云服务器,还是自己整吧...
这里先简单介绍一下 frp ~
frp 是一个专注于内网穿透的高性能的反向代理开源应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,可以帮助我们通过外网服务器转发请求,远程访问家里/内网的设备,如以下应用场景都可以使用:
- http/https网页服务
- Windows专业版远程桌面
- ...
一、下载
使用frp我们需要安装服务端与客户端,首先先下载对应内网电脑系统与服务器系统软件包
下载地址:frp下载-github
打开软件包后可以看到以下内容(以Windows包为例):
frpc可执行文件为客户端应用,frpc.toml为配置文件(以前版本为frpc.ini文件);frps开头文件为服务端同理。
二、解压安装
1.Linux服务端
①解压
将下载的Linux压缩包上传到服务器中,并进行解压,解压可只保留服务端文件:
tar -xvf frp_0.55.1_linux_amd64.tar.gz
rm -f frpc* # 可选
②配置
修改frps.toml配置文件:
# frp服务端口号,服务器需要开放7000端口
bindPort = 7000
# Server Dashboard,frp的web控制面板配置
webServer.addr = "0.0.0.0"
webServer.port = 7500 # 服务器需要开放7500端口
webServer.user = "admin"
webServer.password = "admin"
# 认证令牌,服务端与客户端需要一致
auth.token = "token"
③启动
运行如下命令使其启动:
nohup ./frps -c ./frps.toml &
2.Windows客户端
①解压
解压后只保留客户端文件即可
②配置
# 服务端配置
serverAddr = "服务端ip"
serverPort = 7000
# 认证令牌,服务端与客户端需要一致
auth.token = "token"
# 服务端端口配置
# 此处配置远程端口6666映射本地端口3389,通过 服务端ip:6666 可以访问本地3389端口实现远程连接
[[proxies]]
name = "windows-remote-connection"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 6666 # 远程端口,服务器需要开放6666端口
③启动服务
frpc.exe -c frpc.toml
3.访问web服务与使用
网页中打开 服务端ip:7500 ,输入账号密码即可看到如下:
之后通过远程桌面连接,即可远程进行连接客户端Windows主机:
4.注意要点
若完全按以上步骤操作,需要提前开启服务器相关端口:6666,7000,7500
三、Windows开机自启设置
首先新建一个frpc_start.bat文件,此处C:\...\
为frpc.exe所在文件根目录(绝对目录)
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
C:\...\frpc.exe -c C:\...\frpc.toml
右键此电脑->管理->(右键选中)任务计划程序->创建任务
进行如下配置:
确定保存即可,重新启动再次访问web界面发现已经有服务了,在任务管理器中也可以找到: