服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-14 简米科技 3,437 字 8 分钟阅读

如何在Unix虚拟机中正确配置网络与用户权限?,Unix虚拟机网络权限设置方法

导读在Unix虚拟机中正确配置网络与用户权限,核心是先把虚拟网络模式选对,再用静态地址和最小权限把访问边界收住, 网络决定“能不能通”,权限决定“谁能动”,两条线要一起验收,Unix虚拟机网络配置教程:桥接模式和NAT模式区别虚拟化平台通常提供桥接、NAT、仅主机等模式,选错模式,后面改IP、开端口都容易白忙,先看……

在Unix虚拟机中正确配置网络与用户权限,核心是先把虚拟网络模式选对,再用静态地址和最小权限把访问边界收住。 网络决定“能不能通”,权限决定“谁能动”,两条线要一起验收。

Unix虚拟机网络配置教程:桥接模式和NAT模式区别

虚拟化平台通常提供桥接、NAT、仅主机等模式,选错模式,后面改IP、开端口都容易白忙,先看用途,再动配置文件。

桥接模式和NAT模式区别

模式 典型用途 地址来源 外部可达性 注意点
桥接 虚拟机要像局域网主机一样被访问 路由器DHCP或静态 局域网可直接访问 易出现IP冲突、MAC冲突
NAT 开发测试、只需出网 虚拟网络DHCP 外部入站需端口转发 宿主能访问,局域网默认进不来
仅主机 隔离测试、宿主与虚拟机互访 虚拟网络DHCP或静态 不直接出外网 适合漏洞演练和离线环境

选择时可按下面几条判断:

  • 需要被办公室其他电脑访问,选桥接,并在路由器做DHCP保留。
  • 只需要下载依赖、访问宿主服务,选NAT,入站服务用端口转发。
  • 做隔离测试,选仅主机或内部网络,别把测试服务暴露到办公网。
  • 克隆虚拟机后先改MAC、主机名和IP,避免地址冲突。

配置前先确认网卡名和虚拟网络,KVM环境可看virsh net-list --all,VirtualBox可看VBoxManage list bridgedifs,进入虚拟机后执行:

ip -br link
ip -br addr
ip route

网卡名可能是ens33、ens160、enp0s3,不要照抄教程里的旧名称。

Ubuntu虚拟机如何配置静态IP

Ubuntu常用netplan,先列出配置:

ls /etc/netplan/

编辑对应YAML文件,例如/etc/netplan/50-cloud-init.yaml:

network:
  version: 2
  ethernets:
    ens33:
      dhcp4: false
      addresses: [192.168.10.50/24]
      routes:
        - to: default
          via: 192.168.10.1
      nameservers:
        addresses: [223.5.5.5, 1.1.1.1]

要点很实在:

  • 网关要和静态地址在同一网段。
  • 不要同时开DHCP和静态地址。
  • YAML缩进用空格,不要用Tab。
  • 文件权限建议chmod 600 /etc/netplan/.yaml。
  • 先sudo netplan try,确认能回滚再sudo netplan apply。

验证不要只看“配置成功”:

ip addr show ens33
ip route
ping -c 3 192.168.10.1
ping -c 3 223.5.5.5
getent hosts example.com
ss -lntp

能ping网关说明二层和路由基本通,能解析域名说明DNS可用,ss -lntp看服务是否真的监听,Debian传统环境可改/etc/network/interfaces;NetworkManager环境可用nmcli con mod设置ipv4.method manual、ipv4.addresses、ipv4.gateway、ipv4.dns,再nmcli con up。

防火墙只放必要端口,Ubuntu可用ufw allow 22/tcp,RHEL系可用firewall-cmd --add-service=ssh --permanent,据工信部公开信息,云服务安全治理中配置核查是基础环节,虚拟机同样适用。

Linux虚拟机用户权限管理方法:sudo与root场景

网络通了不等于安全,共享root、随手chmod 777、sudo给全部命令,都是常见隐患,行业共识认为,最小权限原则应贯穿用户管理,业内专家指出,服务账户和运维账户要分开,别让一个账号承担所有职责。

sudo权限配置场景:只给需要的人

创建普通用户并加入sudo组:

sudo adduser dev1
sudo usermod -aG sudo dev1
id dev1

更细的控制放在/etc/sudoers.d/,用visudo编辑:

sudo visudo -f /etc/sudoers.d/devops

示例只允许重启Nginx和看日志:

dev1 ALL=(root) /usr/bin/systemctl restart nginx, /usr/bin/journalctl -u nginx

命令路径要用which systemctl确认,不要写ALL=(ALL) NOPASSWD:ALL图省事,需要免密时只对单条命令开,并确认审计日志能落到/var/log/auth.log或journal中,定期用sudo -l -U dev1复核授权。

文件权限、ACL与SSH边界

应用目录按“属主可写、同组可读执行、其他人无权限”处理:

sudo chown -R app:app /srv/app
sudo chmod 750 /srv/app
sudo find /srv/app -type d -exec chmod 750 {} \;
sudo find /srv/app -type f -exec chmod 640 {} \;
umask 027

多人协作可用ACL,不必放宽整组权限:

sudo setfacl -m u:dev1:rx /srv/app
getfacl /srv/app

SSH侧建议在/etc/ssh/sshd_config.d/99-hardening.conf中设置PermitRootLogin no、PasswordAuthentication no、AllowGroups sshusers,改完先sshd -t检查语法,再重载服务,密钥登录后确认~/.ssh为700、authorized_keys为600,审计可看last、who、journalctl -u ssh --since today。

场景化验收清单

  • 开发测试:NAT出网,普通用户sudo白名单,改配置前打快照。
  • 生产托管:桥接或固定NAT映射,SSH密钥登录,禁root,防火墙只开业务端口。
  • 多租户:每台虚拟机独立用户和组,避免共享UID,集中收集sudo与SSH日志。
  • 克隆部署:先改/etc/hostname、/etc/machine-id、MAC和IP,再启动服务。

收束:先通后权,先最小后审计

网络配置要用ip route、DNS解析和端口监听三项验收;用户权限要用sudo白名单、文件权限和SSH边界三项验收,把这两条线做成清单,虚拟机才既好用又可控。

Unix虚拟机网络与用户权限配置Q&A

Q1:虚拟机桥接后宿主机能通,局域网其他电脑不通怎么办?

先查虚拟机IP是否与物理网同网段,再查网关和ARP,公司网络可能启用端口安全或MAC限制,桥接网卡也可能绑定了错误物理网卡,用ip route确认默认路由,用ping测网关,再在路由器侧看DHCP保留和隔离策略。

Q2:普通用户只想允许重启某个服务,sudoers怎么写更稳?

用绝对路径写命令白名单,例如只允许/usr/bin/systemctl restart nginx,参数复杂时,sudo白名单难以精确限制,可封装固定脚本,再只授权该脚本,改完用visudo -c检查语法,并用sudo -l -U 用户名复核。

Q3:改网络配置后SSH断开,怎么恢复?

从虚拟化控制台登录,不要反复重启,先用ip -br addr看网卡名是否写错,再用netplan try的超时回滚机制恢复,若已apply,改回YAML并检查网关是否同网段,生产虚拟机改网络前先打快照,回滚快照并重启前,先用控制台确认网卡名和路由表,这是恢复连通性的第一步。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱