frp内网穿透实现远程连接
2019-10-22更新:当初写这个教程是因为被TeamViewer坑了一把后才写的,当时只是为了应急用一下,凑合着也用了半年,今天因为朋友需要用,开始坑了他一把,是我服务端未正常启用,哈哈哈哈哈哈哈哈哈哈,详细见下问。目前来说,对于我这样的每天处在内网的用户来说,用frp穿透是比较经济实在,并且主动权握在自己手里,除非。。。中转用的服务器死机,你买个高端机器会死机吗?多买几台机器搭建会全体嗝屁吗?显然不会,比如你阿里云、腾讯云,还有其他稳定的机器多开几台嘛(NM,暴露了我这个mjj的本性)。本教程不出意外的话应该不会再更新了,因为已经满足我的日常使用,也适合小白入门了(说我自己)。
2019-03-30:为什么取这个题目,因为我特么的今天就被TeamViewer坑了一把,可能最近用TeamViewer太频繁了,莫名其妙的被判定为商业行为,也不知道这逗逼软件哪里来的勇气收费这么贵,要是一年一百多倒是可以考虑用一下。
群里吐槽了一下TeamViewer后,群友推荐用frp内网穿透实现远程访问内网电脑。开始以为配置很复杂,就问群友来几个中文教程,结果自己尝试了一下后没想到这么简单。。。。。。果然懒癌发作没得救,你都不去尝试,难个P哦!
以上惯例废话两段,以下开始干(四声)货(活)
现在
下载
frp是Github上的开源项目,直接在Release页面下载即可
https://github.com/fatedier/frp/releases
服务端搭建
查看中转主机的系统版本,下载正确的服务器版源码
arch
如果输出:x86_64 则需要下载带linux_amd64的那个压缩包;如果输出的是其他的,则在文件列表中找 linux 的对应系统版本的压缩包。
# 进入vps根目录(根据实际情况)
cd /root
# 下载
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz wget https://web-dl.cc/share/frp/frp_0.34.3_linux_amd64.tar.gz
# 解压并重命名文件夹
tar -xzvf frp_0.34.3_linux_amd64.tar.gz mv frp_0.34.3_linux_amd64 frp
# 进入frp文件夹,测试版本是否正确
cd frp chmod +x frps
然后试着运行一下frps,看看是否能正常运行
./frps --help
正常情况下会输出帮助信息,说明你下载了正确的系统对应版本
如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了
# 编辑配置文件
nano frps.ini
# 添加 访问验证
token = 123456
# 设置 dashboard面板
dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin
dashboard面板可以不设置,但是为了方便查看所有连接情况建议还是设置一下吧,可视化的东西总归有用的。
上述完整的配置文件如下所示
[common] # 服务端端口 bind_port = 7000 # 访问验证 token = 123456 # dashboard面板 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin
# 启动frp
./frps -c ./frps.ini
# 服务器当前运行状态下后台进驻启动
nohup /root/frp/frps -c /root/frp/frps.ini &
客户端设置
前往GitHubre的rleases页面下载“frp_0.25.3_windows_amd64”或者“frp_0.25.3_windows_386”,amd64对应64位系统,386对应32位系统
https://github.com/fatedier/frp/releases
下载对应的frp版本后解压放到某个目录即可,编辑frpc.ini配置
[common] server_addr = VPS的公网ip server_port = 7000 token = 123456 [name] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 10086
2019-10-22更新:[name]今天因为朋友需要用我的frp服务器才发现这个小细节,如果你有多台内网机器需要连接frp服务器,那你需要设置不同的name,具体可以这样[user001]、[user002]、[user003],如果用于专门用途,比如SSH登陆那就[SSH],DNS那就[DNS],不要冲突即可,本身这是个常规设置,因为当初写教程的时候没仔细看官方文档,误以为相同的name不会有影响。
cmd运行frp程序
frpc -c frpc.ini
此时可以看到连接成功的信息,你也可以访问dashboard面板查看是否连接成功
访问地址为 http://vps的ip:7500,输入上述dashboard_user、dashboard_pwd登陆账户及密码即可。效果如下
如果你已经启用了电脑远程访问功能,此时本机可以正常被其他电脑远程访问控制了,其他电脑只需打开远程连接输入vps的ip:10086,如下图所示
如果你还没启用电脑远程功能,进入系统设置》》》远程设置,请按下图设置开启即可
一、设置frp服务端开机自启动
说明:本人尝试在Debian9里直接设置rc-local.service,但是一直无法开机启动服务端,因为vps也不会经常去重启他,每次重启也只是配置其他软件的时候偶尔(个把月)重启一下,一直以为是别的软件干扰了,今天(2019-10-22)发现单纯的rc-local.service设置无法开机自启动,还是有必要写一下解决方法的。很简单,直接添加一个frps.service
1.新建一个frps.service文件
nano /lib/systemd/system/frps.service
2.以下直接复制粘贴进去即可
[Unit] Description=fraps service After=network.target network-online.target syslog.target Wants=network.target network-online.target [Service] Type=simple #启动服务 ExecStart=/root/frp/frps -c /root/frp/frps.ini [Install] WantedBy=multi-user.target
3.测试一下是否能启动 frps
systemctl start frps
4.开启开机服务
systemctl enable frps
5.相关命令
重启:systemctl restart frps
停止:systemctl stop frps
日志:systemctl status frps
二、设置frp客户端开机自启动
。。。客户端如果是Linux系统,那很简单的,参考服务端写个自启动服务即可。但是win系统下,我本来是打算放弃。。。。略蛋疼,后来还是折腾了一下。方案1是我目前用的,人懒,懒得折腾别的方案了
Win系统下方案1:
1.新建一个bat,如frpClientTest.bat,复制以下内容进去并修改frp所在目录及配置文件名
@echo off D: cd D:\Program Files\frp frpc -c frpc-test.ini exit
2.利用软件Bat To Exe Converter将此bat转换成frpClientTest.exe,就是造个exe程序。。。非常土的办法
3.管理员身份打开cmd,新建Windows服务
sc create frpClientAutoTest binpath= "D:\Program Files\frp\frpClientTest.exe" displayname= "frpClientAutoTest" start= auto
经本人测试好像auto也会有时无效。。。不明原因,也不想深入探究,索性进一步设置一下该服务,打开Windows服务管理,找到frpClientAutoTest服务,双击打开,设置恢复参数即可,并强制设定最终启动程序即可,具体可参考下图
Win系统下方案2:
此方法本人还没测试。。。就是开机加载vbs任务,理论上没毛病
1.新建一个文本文件frpClient.txt,复制以下内容进去并修改frp所在目录及配置文件名,然后重命名这个文本文件后缀为vbs为frpClient.vbs,把这个frpClient.vbs放到Windows的启动目录里面即可(Windows启动目录位于“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp”)。
set ws=WScript.CreateObject("WScript.Shell") ws.Run "D:\Program Files\frp\frpc.exe -c D:\Program Files\frp\frpc-test.ini",0
以上就是入门级的frp内网穿透远程连接内网电脑的方法,更多的frp功能和参数设置请访问frp的GitHub页面自行学习。
https://github.com/fatedier/frp/blob/master/README_zh.md
评论
评论关闭