当前位置:   article > 正文

高效工具-内网穿透实现windowA连接linux服务器C_frp 可以windows到linux吗

frp 可以windows到linux吗

需求

个人需求是有一台连接局域网的电脑B,该电脑B可以访问局域网内的其他服务器,且可以访问公网,本人在另一个局域网内有一台电脑A,想要直接远程桌面访问B,通过B操作局域网内的其他服务器。经过调研发现通过“远程桌面+内网穿透”可以实现该功能需求。

image-20230427101955432

实现步骤

准备工作

  1. 公网服务器,用自己的服务器感觉更加安全,我用的腾讯云的轻量服务器
  2. 远程桌面工具
  3. 穿透工具

远程桌面

首先确保windows可以使用远程桌面的功能,一般来说,家庭版不支持远程桌面的功能,但是专业版支持。在设置的系统信息里可以查看自己的属性。

image-20230427102531094

如果是专业版,可以直接支持远程桌面,那么这一步可以跳过。

如果是家庭版,不直接支持远程桌面,解决方案是1.去淘宝花10元升级自己的密钥 2.采用安装RDPWrap 套件为家庭版windows赋予远程桌面访问的功能。

这边可以直接参考知乎教程 家庭版Windows11开启远程桌面被控 https://zhuanlan.zhihu.com/p/600706130

需要重点关注的是因为系统更新等原因,在安装过程中如果出现图示的问题

那么寻找和自己系统版本匹配的 rdpwrap.ini 文件,在 github issues页面 https://github.com/stascorp/rdpwrap/issues上面查找,找到与自己系统匹配的版本。

  1. 首先停止服务
# 停止服务
net stop termservice
  • 1
  • 2
  1. 然后复制替换配置文件脚本
替换C:\Program Files\RDP Wrapper中的rdpwrap.ini
  • 1
  1. 然后重启服务
# 启动服务
net start termservice

  • 1
  • 2
  • 3

成功后的状态应该是

image-20230427103955292

至此,你的家庭版windows电脑可以支持在局域网内开启远程桌面直接访问。

内网穿透

内网穿透的工具有很多,但是网上将windows类型云服务器作为公网IP的相对较少,大部分的教程都是演示的linux云服务器作为公网IP进行内网穿透。

本文总结教程,总结了windows服务器内网穿透的主要逻辑流程如下

image-20230427105231222

  1. windows云服务器开放端口

这边不同厂商的云服务器设置方法类似但是有区别,我采用的是腾讯云的轻量应用服务器,所以是在图示的页面打开(这边大家 厂商+云服务器类型+开放端口可以直接搜索到对应教程)。

为了方便,我是直接开启了所有端口,也可以根据自己真实想要开放的端口开放相应的端口,比如7000端口,8000端口等。

image-20230427105542276

  1. 配置穿透工具服务端
  2. 配置穿透工具客户端

这边是直接有教程的,这里放我参考的教程以及我最终采用的配置。

参考教程

1.通过windows server使用frp软件实现内网穿透

2.简单几步实现内网穿透(Windows部署开源frp)

3.windows server 部署frp内网穿透,并添加为服务

4.使用frp配置内网访问(穿透)教程(超详细,简单)

经过测试,最终采用的还是和教程1类似的配置,也就是frp穿透+nssm注册为windows服务。

这边的逻辑是直接直接cmd运行frp的exe就可以实现功能了,但是一般把cmd窗口关闭,就会停止服务。

nssm的功能就是把frp运行exe注册为window的服务,这样就可以后台无感直接运行,方便耐用,还可以开机自启。

下面总结介绍配置流程,按照教程下载资源

  1. 资源下载

下载frp,下载链接https://github.com/fatedier/frp/releases

下载nssm,下载链接 http://nssm.cc/download

2.配置服务端

(2.1)frps打头的负责服务器,所有修改frps.ini即可

#默认即可
[common]
bind_port = 7000

  • 1
  • 2
  • 3
  • 4

(2.2)注册服务

搜索cmd,用管理员身份打开,cd 你下载解压的nssm的目录

执行下面的指令

cd "替换为nssm.exe所在的目录,删除引号"
nssm.exe install frp_amd64
  • 1
  • 2

这个指令会把frps.exe的执行过程注册为服务frp_amd64

image-20230427112922625

3.配置客户端

(3.1)frpc打头的负责客户端,所以修改frpc.ini即可

frpc.ini 配置:比如我服务器 frps.exe 端口是7000,我希望能够通过远程桌面访问本机(即3389端口),通过配置 local_port = 3389,remote_port = 7001 ,这样就可以通过 服务器IP地址:7001 来访问本机。frpc.ini 配置如下

[common]
server_addr = 服务器IP地址
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(2.2)注册服务

搜索cmd,用管理员身份打开,cd 你下载解压的nssm的目录

执行下面的指令

cd "替换为nssm.exe所在的目录,删除引号"
nssm.exe install frp_amd64
  • 1
  • 2

这个指令会把frpc.exe的执行过程注册为服务frp_amd64

image-20230427112813350

内网穿透+远程桌面

按照上面的配置完成后,即可实现内网穿透+远程桌面

打开monaxtern,输入如下,上面的配置是公网的ip+7001端口相当于直接局域网内直接访问我的电脑B,用户名是电脑B

image-20230427113411374

点击OK,即可成功通过电脑A,经过公网端口映射到电脑B的3389远程桌面端口,以内网穿透+远程桌面的技术栈访问到电脑B.

更多灵活应用

客户端绑定更多端口

[ssh]这样的名称必须全局唯一,即就算有多个客户端,也只能使用一次,其他的可以用[ssh2]、[ssh3]等;
意思就是说,如果你要配置多个客户端,必须将另外的客户端的[ssh]改为[ssh2]、[ssh3]等,并且remote_port也要变,比如6002,6003等
  • 1
  • 2

跳板机功能

在前面功能实现的基础上,可以进行灵活的操作使用,比如,可以其实使用电脑A登录服务器C

image-20230428090804173

(1)准备工作:安装SSH服务

确定windowB安装SSH服务,SSH在window系统上是自带的服务,所以只要在系统设置中安装SSH的服务端和客户端即可

image-20230428091158875

(2)使用windosB进行端口转发

添加端口转发

netsh interface portproxy add v4tov4 listenport=1005 connectport=22 connectaddress=192.168.1.95

  • 1
  • 2

如果添加错误可以删除

netsh interface portproxy delete v4tov4 listenport=1005

  • 1
  • 2

可以查看目前所有的端口转发

netsh interface portproxy show v4tov4
  • 1

(3)按照前文步骤将你新添加的端口进行内网穿透,也就是直接在frpc.ini中添加即可,然后重启frpc服务即可

[ssh14(随便写一个就行)]
type = tcp
local_ip = 127.0.0.1
local_port = 1005 (要和前面的对应)
remote_port = 7005(要和服务器开放的端口对应)
  • 1
  • 2
  • 3
  • 4
  • 5

(4)最后直接在电脑A上登录你绑定的服务器的IP和端口即可直接访问到服务器C!完结撒花!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/713936
推荐阅读
相关标签
  

闽ICP备14008679号