WEB-DL

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.31.2/frp_0.31.2_linux_amd64.tar.gz
wget https://web-dl.cc/share/frp/frp_0.31.2_linux_amd64.tar.gz

# 解压并重命名文件夹

tar -xzvf frp_0.31.2_linux_amd64.tar.gz
mv frp_0.31.2_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

码字很辛苦,转载请注明来自非WEB-DL资源站《frp内网穿透实现远程连接》

评论