在学校服务器上为CentOS Linux虚拟机开放Shell连接端口(如60000)给同学们访问,主要涉及两大步骤:一是在虚拟机内部配置防火墙,二是在Windows宿主机上设置端口转发。由于虚拟机通常使用NAT模式网络,外部无法直接访问,因此端口转发是关键。
下面我为你整理了详细的操作流程和注意事项。
🔧 虚拟机内部配置(CentOS 7/8/9)
首先,你需要在CentOS虚拟机内部开放端口并确保SSH服务正常。
1.开启防火墙并放行端口
使用firewalld防火墙管理工具执行以下命令:
# 检查防火墙状态,确认处于running状态
sudo firewall-cmd --state
# 永久开放60000/tcp端口(用于SSH连接)
sudo firewall-cmd --zone=public --add-port=60000/tcp --permanent
# 重载防火墙配置使规则生效
sudo firewall-cmd --reload
# 验证端口是否开放成功
sudo firewall-cmd --list-ports
2.配置SSH服务使用60000端口
默认SSH端口是22,你需要修改为60000。
# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
找到 #Port 22 这一行,去掉注释#,并将数字22改为60000。如果找不到,直接在文件内添加一行 Port 60000。
保存退出后,重启SSH服务:
sudo systemctl restart sshd
你可以使用 sudo netstat -lntp | grep 60000 或 sudo ss -lntp | grep 60000 来确认SSH服务正在监听60000端口。
🌐 Windows宿主机端口转发
因为虚拟机是NAT模式,需要在Windows服务器上设置端口转发规则,将外部对宿主机某个端口(例如60000)的访问,转发到虚拟机的60000端口。
- 查询虚拟机的IP地址
在CentOS虚拟机中执行ip addr或ifconfig命令,找到eth0或ens33等主要网络接口,记录其IP地址(例如192.168.122.100)。 - 以管理员身份运行PowerShell
在Windows服务器上,务必以管理员身份打开PowerShell。 - 执行端口转发命令
使用netsh命令添加转发规则。假设虚拟机IP为192.168.122.100:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=60000 connectaddress=192.168.122.100 connectport=60000
listenaddress=0.0.0.0表示监听所有网络接口上的连接。listenport=60000是宿主机对外开放的端口。connectaddress是虚拟机的IP地址。connectport是虚拟机内部开放的端口(SSH端口)。
4.开放Windows防火墙端口
为了让外部流量能访问宿主机的60000端口,你需要在Windows Defender防火墙中添加入站规则,允许TCP端口60000。
✅ 验证连接与注意事项
完成以上设置后,同学们就可以使用Xshell、PuTTY等SSH客户端连接了。
- 连接地址:
你们的Windows服务器IP地址:60000 - 端口:
60000 - 用户名/密码:CentOS虚拟机内的用户凭证。
你可以先在服务器本机使用 telnet localhost 60000 测试转发规则是否生效。
重要注意事项:
- 网络模式:确保虚拟机网络连接方式为NAT模式。
- IP地址稳定性:虚拟机的IP地址最好是静态的。你可以在虚拟机网络设置中配置静态IP,或直接在Windows的Virtual Network Editor中为虚拟机设置端口转发时指定IP,防止IP变更导致转发失效。
- 安全考虑:向校园网开放端口需注意安全。建议:
- 使用强密码或密钥认证。
- 考虑将默认SSH端口改为非标准端口(如你计划的60000)也是一种安全实践。
- 如果同学IP范围固定,可在防火墙设置源IP限制。
评论