首页 / VPS测评 / 正文
Linux如何通过外网访问虚拟机服务器?一文搞懂端口转发+防火墙配置!

Time:2025年07月13日 Read:14 评论:0 作者:y21dr45

大家好,我是你们的服务器测评博主“运维段子手”,今天咱们来聊一个既实用又容易踩坑的话题——如何在Linux环境下,让外网访问你的虚拟机服务器?

Linux如何通过外网访问虚拟机服务器?一文搞懂端口转发+防火墙配置!

是不是遇到过这种情况:你在本地虚拟机里搭了个网站、数据库或者游戏服务器,兴冲冲地想分享给朋友,结果对方死活连不上?别急,今天我就用最接地气的方式带你搞定这个问题!

1. 为什么外网访问不了虚拟机?

咱们得明白一个基本概念:虚拟机(比如VMware、VirtualBox)默认是“宅男”——它喜欢待在局域网(LAN)里,不愿意出门(外网)。要让外网访问它,你得给它开个“门”,也就是所谓的端口转发(Port Forwarding)

举个栗子🌰:

- 你的电脑IP是`192.168.1.100`(局域网IP)。

- 虚拟机的IP是`192.168.1.200`(也是局域网IP)。

- 外网的朋友想访问你虚拟机的Web服务(比如80端口),但直接输入你的公网IP是没用的,因为路由器不知道要把请求转给谁。

这时候就需要端口转发+防火墙放行了!

2. 如何配置端口转发?

2.1 确认你的公网IP(小心动态IP坑)

你得知道自己有没有公网IP。打开终端输入:

```bash

curl ifconfig.me

```

如果返回的是一个公网IP(不是`192.168.x.x`或`10.x.x.x`这种内网地址),恭喜你!可以直接搞端口转发。

⚠️ 注意:很多家用宽带是动态IP(隔几天会变),建议用DDNS(动态域名解析)绑定域名,比如花生壳、No-IP。

2.2 在路由器上设置端口转发

不同品牌的路由器界面不一样,但核心逻辑都是:

> “把外网的某个端口的流量,转发到内网某台机器的某个端口”

以TP-Link路由器为例:

1. 登录路由器管理页面(一般是`192.168.1.1`)。

2. 找到 “端口转发”或“虚拟服务器” 选项。

3. 添加一条规则:

- 外部端口: `8080`(假设你想让外网访问8080端口)

- 内部IP: `192.168.1.200`(你的虚拟机IP)

- 内部端口: `80`(假设虚拟机跑的是Web服务)

- 协议: TCP/UDP(一般选TCP就行)

保存后,外网访问`http://你的公网IP:8080`就能看到虚拟机的网站了!

2.3 Linux防火墙放行端口(UFW/iptables)

如果你的Linux虚拟机开了防火墙(比如UFW),记得放行对应的端口:

sudo ufw allow 80/tcp

或者用iptables:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

3. NAT模式 vs 桥接模式:哪种更适合外网访问?

如果你用的是VMware/VirtualBox,网络模式会影响外网访问的难易程度:

| 模式 | 特点 | 适合场景 |

|||-|

| NAT模式 | 虚拟机共享主机的IP,默认无法被外网直接访问 | ✅适合普通开发测试 |

| 桥接模式 | 虚拟机会获得独立的局域网IP,可以被同一网络下的设备访问 | ✅适合需要暴露服务的场景 |

| Host-Only模式 | 仅主机和虚拟机之间能通信 | ❌不适合外网访问 |

如果你想方便点,建议用桥接模式+手动配置端口转发;如果怕麻烦就用NAT模式+手动映射。

4. SSH远程连接虚拟机实战案例🌰

假设你想让朋友通过SSH连接你的Ubuntu虚拟机(默认22端口):

步骤1:在路由器上设置SSH端口转发

- 外部端口: `2222` (避免直接用22端口防扫描)

- 内部IP: `192.168.1.200` (虚拟机IP)

- 内部端口: `22` (SSH默认端口)

步骤2:在Linux虚拟机上允许SSH

sudo apt install openssh-server

sudo systemctl start sshd

sudo ufw allow 22/tcp

```

步骤3:朋友远程连接

朋友在他的终端输入:

ssh username@你的公网IP -p 2222

Bingo!连接成功!🎉

5. 常见问题 & Troubleshooting🔧

❌问题1:“我能ping通公网IP,但服务就是连不上!”

✅可能原因:

- 防火墙没放行(检查UFW/iptables)

- ISP屏蔽了常用端口(比如80/443)

- NAT环回问题(试试用手机4G网络访问)

❌问题2:“我的公网IP老是变怎么办?”

✅解决方案:

- DDNS动态域名解析服务(如花生壳)

- Cloudflare Tunnel内网穿透

❌问题3:“VirtualBox怎么设置桥接模式?”

✅操作步骤:

1) VirtualBox管理器 →选中你的虚拟机 →设置 →网络 →选择“桥接模式”

2) Linux里运行 `ifconfig`查看是否获取到独立内网IP

6. & Pro Tips💡

想让Linux虚拟机被外网访问?记住这个流程:

[公网IP] → [路由器端口转发] → [防火墙放行] → [成功连接]

📌Pro Tips:

✔️避免直接用默认22/80等常见端口防扫描。

✔️家用宽带80/443可能被ISP封禁,换冷门端口如8080。

✔️安全第一!别开放不必要的服务。

好了朋友们,今天的教程就到这里!如果你觉得有用的话……等等!先别关页面!记得给你的虚拟机做好备份再折腾啊!(别问我怎么知道的😭)

下次见啦~👋

TAG:linux通过外网访问虚拟机服务器吗,linux虚拟机访问不了外网,外网怎么访问虚拟机ip,外网访问vm虚拟机,虚拟机 外网访问,虚拟机访问外部网络

标签:
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1