🌈欢迎来到Linux专栏 ~~ 网络编程
- 🌍博客主页 :张小姐的猫~江湖背景
- 🔥所属专栏 :Linux ~ 不破不立
- 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏

网络编程

🌍准备工作
frp下载:传送门

👻虚拟机准备工作
首先是虚拟机进行联网

接着我们要尝试把Linux 和 Windows之间要互相ping通
cpp
ifconfig
得知了虚拟机的ip地址后

在windows的终端上进行ping链接,发现是可以链接成功的!

cpp
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Realtek 8852CE WiFi 6E PCI-E NIC
物理地址. . . . . . . . . . . . . : F8-3D-C6-C3-19-26
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
IPv4 地址 . . . . . . . . . . . . : 192.168.0.104(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
获得租约的时间 . . . . . . . . . : 2026年8月27日 23:01:11
租约过期的时间 . . . . . . . . . : 2026年8月28日 16:48:25
默认网关. . . . . . . . . . . . . : 192.168.0.1
DHCP 服务器 . . . . . . . . . . . : 192.168.0.1
DNS 服务器 . . . . . . . . . . . : 114.114.114.114
8.8.8.8
TCPIP 上的 NetBIOS . . . . . . . : 已启用
查到windows的IP地址为:192.168.0.104,接着在虚拟机上也ping一下看看

测试完毕,双方可以ping通!
接着把下载好的frp文件发送给虚拟机
cpp
scp frp_0.58.1_linux_amd64.tar.gz lbw@192.168.133.128:/home/lbw/frp
虚拟机中解压成功后:


紧接着在云服务器上修改配置文件frps.toml:(下图不匹配)

如果我们要使用修改后的8888端口的话,则需要指定配置文件来进行
cpp
./frps -c ./frps.toml
cpp
2026-08-28 15:35:51.495 [I] [frps/root.go:105] frps uses config file: frps.toml
2026-08-28 15:35:51.559 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:8888
2026-08-28 15:35:51.559 [I] [frps/root.go:114] frps started successfully
说明该服务端已启动,监视的窗口在8888端口!
接着来看看客户端怎么修改frpc.toml:

cpp
serverAddr = "193.112.168.183"
serverPort = 8888
[[proxies]]
name = "SSH- TEST"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 8001
serverAddr 和 serverPort 是云服务器的IP和端口号,对着自己的进行修改即可,端口是则是刚刚的8888
其中下面的代码是本地的一个服务! frpc收到请求之后再进行一步转发的,转发到? SSH
cpp
[[proxies]]
name = "LBW - TEST"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 8001
remotePort端口是云服务器上的端口,与22号端口映射;也就说22端口会被映射到云服务器上的8081号端口!
- 后续如果有人访问云服务器上的
8001端口,就自然转发到客户端的22号端口了
那么会有人问了,刚刚我们不是设置了一个8888的端口了吗?为什么还需要一个8001呢?
8888端口是让客户端frpc与云服务器建立链接使用的! 一旦建立好链接之后,就会把remotePort推送给服务器端,云服务器会重新给我们启动一个服务,并重新绑定8001端口- 未来我们只要访问8001 就可以访问到 22 的端口号了

✋️动手测试
我们做两个测试
- 1️⃣
ssh远程登录 - 2️⃣
nginx远程访问
首先是ssh远程登录 ,我们在xshell上新起一个:主机号填云服务器地址,端口填刚刚frpc的8001,看看能不能连接上虚拟机

我们发现是可以穿透到虚拟机里了

接下来在虚拟机上部署nginx进行远程访问
- 现在我们想再起一个服务来让外部主机通过云服务器来访问虚拟机上的
nginx


那我我们怎么样让外网主机能访问到虚拟机的nginx呢?------ 配置文件加代理!
cpp
[[proxies]]
name = "HTTP - TEST"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 8002 //云服务器上向外展示的端口


在我们主机上进行访问结果就能访问虚拟机上部署的nginx

最后一步,我们的服务总不能这样去跑吧!变成后台进程 或 守护进程
cpp
nohup ./frpc -c ./frpc.toml &> /dev/null &
nohup ./frps -c ./frps.toml &> /dev/null &

最后的 & 是表示在后台运行
tips:注意要在云服务器上打开对应的端口!
📢写在最后
接下来登场的是 ?

