什么是 Frp
内网穿透工具有很【hěn】多【duō】,其中 Frp (Fast Reverse Proxy) 是比【bǐ】较流【liú】行的一【yī】款【kuǎn】。FRP 是一【yī】个【gè】免费开源的用于【yú】内网【wǎng】穿透【tòu】的反向代理应用,它【tā】支持 TCP、UDP 协议, 也为 http 和 https 协议提供【gòng】了额【é】外的【de】支持。你可以粗略理解它是【shì】一个中转站【zhàn】,帮【bāng】你实现 公【gōng】网 ←→ FRP(服务器) ←→ 家庭【tíng】内网 的连接,让内网里的设备也可以被公网访问到。
服务端设置
安装
FRP 使用 Go 语言开发,可以支【zhī】持【chí】 Windows、Linux、macOS、ARM 等多平台部署。FRP 安装非常【cháng】容易【yì】,只【zhī】需下载对应系统平台的【de】软【ruǎn】件包并解压就【jiù】可用了。这里以 Linux 系统为【wéi】例:
下载【zǎi】地址【zhǐ】:https://github.com/fatedier/frp/releases
cd /home
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar -xf frp_0.33.0_linux_amd64.tar.gz
mkdir /etc/frp
cp frp_0.33.0_linux_amd64/frps /usr/bin/
cp frp_0.33.0_linux_amd64/frps.ini /etc/frp/
frp默认使用7000
端口,如果你的防火墙不允许,需要添加。
输入frps -v
显示版本号则说明安装成功。
启动服务端
frps
使用指定配置文件:
frps -c /etc/frp/frps.ini
作为系统服务启动
将/home/frp_0.33.0_linux_amd64/systemd/frps.service
文件拷贝至/usr/lib/systemd/system/
目录下。
cp /home/frp_0.33.0_linux_amd64/systemd/frps.service /usr/lib/systemd/system/
#添加开机启动
systemctl enable frps
#启动frp服务
systemctl start frps
frps.ini高级设置
token=12310086
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123
token
是验证token建议设置上。dashboard_port
是frp的web面板端口。dashboard_user
、dashboard_pwd
是面板的账户密码。
配置客户端(安装在内网的机器上)
windows
客【kè】户端【duān】也是在上【shàng】面下载的压缩包【bāo】里,Linux 客户端的【de】安装【zhuāng】和启动与服【fú】务器端【duān】没有太多区别,只是对【duì】应运行程序是frpc
而不是frps
。这里以windows为例。
修改配置文件
修改frpc.ini
[common]
# server_addr 为 FRP 服务【wù】端 (VPS 服务器【qì】) 的公网 IP
server_addr = 1.2.3.4
server_port = 7000
[RDP]
type = tcp
local_ip = 192.168.1.30 #电脑【nǎo】在【zài】局域网中的内【nèi】网 IP (如是本机,也可使用【yòng】 127.0.0.1)
local_port = 3389
remote_port = 7002
这样就在本地上新增【zēng】了“RDP”这【zhè】个可供公【gōng】网访问的【de】服务了 (名【míng】称【chēng】可以自己取)。如果你需要添加更多的设【shè】备和【hé】服【fú】务供外网访问【wèn】,那么只需照【zhào】样画葫芦,指定【dìng】正确的 IP 地址和端口号即可。
注意放行端口
每个服务【wù】的 remote_port 是远【yuǎn】程访问时要用到的端口号【hào】,注意这些端口号也【yě】要在服务【wù】器的防火墙【qiáng】和安全组里【lǐ】放行才能顺利访问的,如上【shàng】面【miàn】的 7001、7002。
启动 FRP 客户端
假设你已将 Frp 的客户端解压缩到 c:frp
目录中,那么启动 Frp 客户端的命令就是:
c:frpfrpc.exe -c c:frpfrpc.ini
启动之【zhī】后看到 “start proxy success”字样【yàng】就表示启动【dòng】成功【gōng】了。
Linux
这里以CentOS为例。
将frpc
和frpc.ini
这两个文件拷贝至/home/目录下,赋予权限:chmod 755 frpc
修改frpc.ini内容:
[common]
# server_addr 为【wéi】 FRP 服务端 (VPS 服务器) 的公【gōng】网【wǎng】 IP
server_addr = 1.2.3.4
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1 #电脑在局域网【wǎng】中的内网 IP (如是【shì】本【běn】机,也可【kě】使用 127.0.0.1)
local_port = 22
remote_port = 7103 #FRP 服务端需开启的端口
启动:
cd /home
./frpc -c frpc.ini
启【qǐ】动之后看到 “start proxy success”字样就表示启【qǐ】动成功了【le】。
作为系统服务启动
新建/usr/lib/systemd/system/frpc.service
文件,内容如下:
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/frpc -c /home/frps.ini
[Install]
WantedBy=multi-user.target
#添加开机启动
systemctl enable frpc
#启动frpc服务
systemctl start frpc
进行远程访问
远程【chéng】桌面连接到【dào】家【jiā】里的 Windows 电脑,那【nà】么【me】打开“微【wēi】软远程桌【zhuō】面客户端”后,在地址栏里填入服务器公网IP:7002
即可连接。
由此,借助 Frp,你就能轻松【sōng】地为本地局域【yù】网内【nèi】网【wǎng】的【de】设备提供公网直接访问的【de】能力了,你可以用 Frp 来【lái】转发包括但【dàn】不【bú】限【xiàn】于 ssh、http、https、转发 Unix 域套接字等服务。
Windows将FRP设置为服务并开机自启
实【shí】Windows也【yě】能像Linux那样设【shè】置程序为后台运行,就是将其添加【jiā】为【wéi】服务【wù】;
下载winsw
: https://github.com/kohsuke/winsw/releases
我下载的是2.9.0
版本。
这里将下载WinSw.Net4.exe
重命名为winsw.exe
了,以方便后面操作;
创建与winsw同名的配置文件winsw.xml
,内容如下:
<service>
<!-- 该服务的唯一标识 -->
<id>frp</id>
<!-- 该服务的名称 -->
<name>frp-windows</name>
<!-- 该服务的描述 -->
<description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
<!-- 要运行的程序路径 -->
<executable>D:toolfrp_clientfrpc.exe</executable>
<!-- 携带的参数 -->
<arguments>-c D:toolfrp_clientfrpc.ini</arguments>
<!-- 第一次启动失败 60秒重启 -->
<onfailure action="restart" delay="60 sec"/>
<!-- 第二次启动失败 120秒后重启 -->
<onfailure action="restart" delay="120 sec"/>
<!-- 日志模式 -->
<logmode>append</logmode>
<!-- 指定日志文件目【mù】录【lù】(提前在该文件目录下【xià】新建logs文【wén】件夹【jiá】) -->
<logpath>logs</logpath>
</service>
开始使用:
//注册服务
winsw.exe install
//卸载服务
winsw.exe uninstall
//启动服务
winsw.exe start
//停止服务
winsw.exe stop
//重启服务
winsw.exe restart
//查看状态
winsw.exe status
注册服务时如果被某60拦截了需要点允许,如果提示:FATAL - WMI Operation failure: AccessDenied
则需要以管理员方式运行CMD再试;
不出意外的话打开任务管理器就能看到刚刚添加的服务了
解除Windows10多账户远程桌面连接限制
Windows默认情况下只能同时登录一【yī】个账号,并且手机【jī】连上电【diàn】脑,电脑就会退【tuì】出【chū】登录,被踢下线,这是因【yīn】为,能让多【duō】个【gè】账号远程连接到一个电脑,这个是服务器版才【cái】该有的功能【néng】,想要让Windows10支持多账户远程桌【zhuō】面连接,需要进行如【rú】下设【shè】置。
配置本地组策略
运行中输入GPEDIT.MSC
打开组策略编辑器,依次点击:
管理【lǐ】模板-Windows组【zǔ】件-远程桌面【miàn】服务-远程桌面会【huì】话主机-连接
双击右边的限制连接的数量
,选择已启用
,然后在下面选择你想开启的最大连接数,一般填个3都够用了.
双击右边的将远程桌面服务用户限制到单独的远程桌面服务会话
,把这里改成已启用
开启多用户连接功能
由于系统本质上装的并不是服务器【qì】版本,所以到目前为【wéi】止【zhǐ】我们还是不能【néng】够【gòu】多【duō】用户同时【shí】连【lián】接的,要去github上下【xià】载RDPWrap这个软件
解压之后我们右键选择用管理员依次运行这三个文件
- install.bat
- update.bat
- RDPConf.exe
如果你的系统版本太【tài】新,那你很可能箭【jiàn】头这里依然会【huì】显【xiǎn】示[not supported]
需要到这个代【dài】码仓库的issues里面搜【sōu】索你【nǐ】的系【xì】统版本(也【yě】就是【shì】上面的10.0.17763.1369字【zì】眼),一般来说都会有人贴出新系统的配置信息,你【nǐ】只要把这个配置信息粘【zhān】贴到刚刚那个rdpurap.ini文件的【de】末【mò】尾就行【háng】了【le】.例如下图:
到这里,所有的步骤就都【dōu】结束了,你的电脑【nǎo】现在可以让【ràng】两个【gè】账户同时连接而不会【huì】将【jiāng】本地【dì】用户踢出。
其他
配合Microsoft Remote Desktop
APP可以实现手机远程控制电脑。
详情:https://www.iplaysoft.com/microsoft-remote-desktop.html
提示登陆没有成功,但是用户名密码正确
开始–>运【yùn】行->gpedit.msc->计算机配置->Windows设置->安全【quán】设置->本【běn】地【dì】策【cè】略->安全选项->网络【luò】访问:本地帐户【hù】的共享【xiǎng】和安全模型【xíng】。 修改【gǎi】为使用经典模式
自建 Teamviewer 连接
使用frp来自【zì】建teamviewer的本地lan连接,来避【bì】开【kāi】teamviewer的商业检测。
teamviewer使用的是本地5938端口
受控端teamviewer设置
- 允许LAN连接
- 添加无人值守密码
受控端frp设置
使用frp转发本【běn】地【dì】的5938端【duān】口到服【fú】务器端上的5938端口【kǒu】,内【nèi】网外网端口一致为5938。
[teamview]
type = tcp
local_ip = 127.0.0.1
local_port = 5938
remote_port = 5938
控制端teamviewer使用
控制端启【qǐ】动teamviewer,在“控制【zhì】远程计【jì】算【suàn】机”那里输入服务器的ip,点【diǎn】连接就可以了【le】
身份认证
目前 frpc
和 frps
之间支持两种身份验证方式,token
和 oidc
,默认为 token
。
通过 frpc.ini
和frps.ini
的 [common]
段落中配置 authentication_method
来指定要使用的身份验证方式。
只有通过身份验证的客户端(frpc)才能成功连接 frps。
token
基于 Token 的身份验证方式比较简单,需要在 frpc
和 frps
的 [common]
段落中配置上相同的 token
参数即可。
安全地暴露内网服务
原文地【dì】址:https://gofrp.org/docs/examples/stcp/
这个示例将会创建一个只有自己能访问到的 SSH 服务代理。
对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
使用 stcp(secret tcp)
类型的代理可以避免让任【rèn】何人都能访问到【dào】要穿透的服【fú】务,但是访【fǎng】问者【zhě】也需要运行另外一个 frpc 客【kè】户【hù】端【duān】。
frp服务端无需做任何更改。
在需要暴露到内网的机器上部署 frpc
,配置如下:
[common]
server_addr = x.x.x.x
server_port = 7000
[secret_ssh]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
在想要访问内网服务的机器上也部署 frpc
,配置如下:
[common]
server_addr = x.x.x.x
server_port = 7000
[secret_ssh_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1
bind_port = 6000
运行服务后,即可通过本机的6000端口来连接远程服务器了。
【标准版】400元/年/5用户/无限容量
【外贸版】500元/年/5用户/无限容量
其它【tā】服务:网【wǎng】站建设、企【qǐ】业邮【yóu】箱、数字证【zhèng】书ssl、400电话、
联系方式:电话:13714666846 微信同号
声明:本站所有作品(图文、音视频【pín】)均【jun1】由用户自行上传分享,或互【hù】联网相【xiàng】关知识【shí】整合,仅【jǐn】供网友学习【xí】交流,若您【nín】的权利【lì】被【bèi】侵害,请联系 管理员 删除。
本文【wén】链接【jiē】:https://www.city96.com/article_32840.html