【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:注意要在云服务器上打开对应的端口!

📢写在最后

接下来登场的是 ?

相关推荐
Decay__1 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子3 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF4 小时前
Linux
linux·服务器·网络
万联WANFLOW4 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
sbjdhjd4 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
Ruiery6 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
taktok_ai6 小时前
用 cc-switch 连接 Taktok
网络
乌恩大侠6 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
Decay__7 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
丰锋ff8 小时前
压缩命令笔记
linux