使用frp反向代理实现内网穿透(远程ssh登录家里的电脑)

使用frp反向代理实现内网穿透(远程ssh登录家里的电脑)

1. 准备

  1. 从github上下载frp最新版
  2. 一台有公网ip的服务器S(本文以某里云CentOS为例)
  3. 两台PC(内网穿透的A和远在他乡的B)(本文中A是windows11,B是mac)

2. 配置内网穿透的A

  1. 在应用>可选功能>添加可选功能(查看功能)中安装OpenSSH服务器,打开cmd执行net start sshd
    请添加图片描述
    请添加图片描述
    请添加图片描述
  2. 解压frp压缩包,修改frpc.ini,如下(其中server_addr后面接服务器S的IP地址):

[common]
server_addr = SSS.SSS.SSS.SSS
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

  1. 尽量关闭防火墙

3. 配置服务器S

  1. 在服务器运营商提供的控制台面板上分别添加出站和入站规则,允许对服务器7000和6000端口的访问,可以在别的机器上扫描一下服务器的这两个端口,显示close就是已经允许访问了,显示filtered就是没有允许请检查其他服务器防火墙等设置。请添加图片描述
    请添加图片描述
  2. 以任意方式上传frp压缩包,解压,修改其中的frps.ini如下:

[common]
cind_port = 7000

  1. 尽量关闭防火墙。

4. 连通ABS

  1. 在服务器S上执行nohup ./frps -c fops.ini > /dev/null 2>&1 &,不挂断的后台运行frp服务端,之后会返回一个pid,可以通过kill pid可以结束进程,通过命令netstat -lnpt可以检查7000端口是否正在被监听,此时若用别的机器扫描7000端口应处于open状态。
    在这里插入图片描述
  2. 在内网穿透PCA上frp解压的文件夹下用cmd执行./frpc.exe -c ./frcp.ini打开frp客户端,若没报错则此时反向代理已经建立。
  3. 在PCB上执行命令ssh -oPort=6000 user@SSS.SSS.SSS.SSS,其中user是PCA上的一个可用的用户,SSS.SSS.SSS.SSS是服务器S的IP地址,此时访问服务器的6000端口就相当于访问PCA的22端口,即使用ssh连接PCA,随后输入密码(应当是该微软用户的密码,如果不是就试试登录的PIN密码)。
  4. 连接成功,测试windows命令。
    请添加图片描述

5. 让frp开机自启

  1. 在C:\下创建start.bat,输入以下内容,启动frp客户端,xxx处换成您的用户名。
@ECHO OFF
C:\Users\xxx\frp\frpc.exe -c C:\Users\xxx\frp\frpc.ini >> temp.log 2>&1
  1. 在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup下创建start.vbs,键入以下内容,让start.bat开机启动并且不弹出命令行窗口。
Set Ws=CreateObject("Wscript.Shell")
Ws.run "C:\start.bat",0

本文只是实现了ssh内网穿透的基本功能,如有其他需求如http、dns等服务穿透请参考[官方文档](https://gofrp.org/docs),其他安全性需求请自行调整安全策略。
上述拙见如有谬误,敬请斧正!转载请注明出处,侵权请联系删除。

辛丑年孟冬月廿六
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用frp实现内网穿透功能的方法如下: 1. 首先,你需要准备一台公网服务器作为frp的服务端,以及一台需要做转发的内网服务器作为frp的客户端。确保这两台服务器可以互相访问。 2. 在公网服务器上安装和配置frp服务端。你可以通过下载frp服务端的方式来安装。具体的步骤是,在公网服务器上下载frp服务端,并进行配置。 3. 下载frp服务端的方法可以根据你的操作系统来选择适合的版本。一般来说,你可以通过在公网服务器上执行命令来下载frp服务端,比如使用wget命令。 4. 下载完成后,你需要进行frp服务端的配置。配置文件通常是一个frps.ini文件,你可以根据自己的需求来修改配置文件中的参数,比如端口号、认证方式等等。 5. 在客户端的内网服务器上,你需要准备工作。比如,确保内网服务器上部署了需要暴露在公网上的资源,比如项目接口。 6. 通过scp命令将下载的frp服务端传送到公网服务器上,可以使用以下命令:scp -P ssh开放的端口 下载的frp_0.51.2_linux_amd64.tar.gz的位置 登录的账号@公网服务器ip:你要拷贝到的公网服务器的位置。 7. 在公网服务器上解压下载的frp服务端,并执行启动命令,启动frp服务端。 通过以上步骤,你就可以使用frp实现内网穿透功能了。这样,你就可以在外部网络访问到内网服务器上的资源,而无需在公网上部署一套相同的服务。同时,通过内网穿透,你可以在家中或其他地方访问公司内网的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未济672

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值