frp内网穿透,以Windows远程连接为例

1 准备

1)公网ip的服务器(本文以Centos7系统为例)

2)内网电脑(本文以Windows7为例)

 

2 实现步骤

2.1 服务端

linux服务器下载对应frp:Releases · fatedier/frp (github.com)

wget https://github.com/fatedier/frp/releases/download/v0.39.0/frp_0.39.0_linux_amd64.tar.gz

 

解压

tar -zxvf frp_0.39.0_linux_amd64.tar.gz

 

进入解压后的文件夹

cd frp_0.39.0_linux_amd64

 

修改配置

vi frps.ini
[common]
bind_port = 7000 #必须
vhost_http_port = 8080 #可选,不需要可不配

[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口,vhost_http_port是自己设定的http访问端口。

 

保存上面的配置后,使用以下指令启动frp服务端

./frps -c ./frps.ini

 

服务方式自启动:

可将文件夹移动到 /opt下

创建启动脚本

vi frps.sh
/opt/frp/frps -c /opt/frp/frps.ini 

 

给脚本权限

chmod a+x frps.sh

 

创建服务

vi /etc/systemd/system/frps.service

[Unit]
Description=frps

[Service]
ExecStart=/bin/bash /opt/frp/frps.sh

[Install]
WantedBy=multi-user.target

  

启用并启动服务

systemctl enable frps.service
systemctl start frps.service

 

2.2 客户端

下载对应系统的frp如 frp_0.39.0_windows_amd64.zip

解压后放到 D:\Program Files (当前也可以放到你喜欢的目录)

修改frpc.ini,下面配置将服务器23389端口映射到客户端3389端口

 

 cmd到目录下,运行命令

.\frpc.exe -c .\frpc.ini

客户端开机自启动(隐藏cmd窗口方式):

创建frpc.bat

bat后台执行方式:

@echo off
start /b cmd /k "cd /d D:\Program Files\frp\ && .\frpc.exe -c .\frpc.ini"

bat异常重启方式:(如需后台运行,需配合vbs脚本,或者定时任务非用户登录启动,否则会在当前用户桌面弹出运行的CMD窗口)

@echo off
:home
frpc -c frpc.ini
TIMEOUT /T 600
goto home

同目录创建frpc.vbs(后台执行模式)

set ws=WScript.CreateObject("WScript.Shell")
ws.Run "frpc.bat",0

创建windows定时任务

1)不管用户是否登录都要运行(或以SYSTEM用户身份运行,即系统最高权限,此方式也不会将cmd窗口对用户显示)

2)系统启动时运行(可以延迟一会)

3)启动程序位vbs脚本或bat脚本,注意设置起始目录

定时启动vbs脚本或者后台方式的bat脚本是异步调用的,定时任务启动执行任务后会很快结束,服务后台运行不方便手动结束

定时任务启动异常重启方式的bat脚本是同步的,定时任务在服务运行时一直运行,停止定时任务即可停止服务

 4)其他按需选择

 

3 使用

访问服务端ip和端口,将代理到客户端对应端口

如windows远程连接服务端ip,可访问内网电脑

 


使用frp实现内网穿透 - 简书 (jianshu.com)

frp 实现内网穿透(Windows 版) - 遗失的美好灬 - 博客园 (cnblogs.com)

文档 | frp (gofrp.org)

windows 下frp服务启动_Windows 下 Frp 设置开机自动启动_weixin_39719018的博客-CSDN博客

WScript.Shell对象的 run()和exec()函数使用详解 - chulia - 博客园 (cnblogs.com)

posted @ 2022-02-06 20:20  冬音  阅读(580)  评论(0编辑  收藏  举报