[i=s] 本帖最后由 CingSyuan 于 2025-10-28 10:10 编辑 [/i]
环境
这是我的部署环境,我是打算通过 公网访问 EVE-NG 的,但是对外端口有限
我是在我朋友的 PVE服务器 上部署的,理论上你可以在任何 x86 Ubuntu 22 LTS 平台部署
比如云服务器、物理机、ESXI、PVE、VMware vSphere、超融合平台、Open Stack等
Proxmox VE 9.0.6
Intel(R) Xeon(R) Platinum 8259CL CPU
Linux 6.14 11-1-pve
对外端口范围:32769~32897(必须)、以及Web(必须)、SSH/FTP等端口(建议)
32769~32897用于传输设备数据,即 设备数据 从 EVE-NG 通过Web 到你的访问设备,不可修改
你可能会用到:
eve-ce-prod-6.2.0-4-full.iso EVE-NG6.2.0-4 ISO镜像 官网下载页面
EVE-NG 官方网站
EVE-NG 中国/亚太代理 官方网站
第三方镜像模板【适配最新社区及专业版】
EVE-NG 6.0社区版最新热拔插补丁(保持更新中)
EVE-NG 中国/亚太代理 官方腾讯频道
阿里云NTP网络授时
清华大学开源软件镜像站 TUNA Ubuntu 软件仓库
中国科技大学开源镜像站 USTC Ubuntu 软件仓库
Ubuntu 官方网站
裸机安装方式有两种
- ISO镜像 直装
这个方法适用于你有权限挂载镜像,一些云服务可能不支持
直接用 ISO 镜像安装,本文主要用此种方式,因为相对简单方便
- 自部署安装 EVE-NG
如无法挂载 ISO镜像,比如 阿里云、Azure、GCP,则先通过后台安装 Ubuntu 22 LST 版本
部署 Ubuntu 系统,然后运行 EVE-NG 安装脚本进行部署
注意此种方式必须要求使用 Ubuntu 22 LST 版本
并且在运行 EVE-NG 安装脚本时,需要从 EVE-NG 官网拉取部分组件,很可能因为网络原因,拉取失败或者拉取速度极慢
如可能,强烈建议使用前者,除非你对自己的排障能力十分自信
ISO 镜像直装 EVE-NG
选用 EVE-NG官网 提供的 ISO 镜像直接安装
挂载 EVE-NG 镜像,然后启动虚拟机并进入 BOOT 从镜像启动
然后就不用管,需要等7~8分钟
期间提示你登录,此时还无法登录,因为还没有安装完毕
过一会儿就是提示你设置、主机名、IP啥的
这个界面表示 EVE-NG 还在安装中

直到出现这样的界面,有IP的,就可以输入你刚刚配置的密码登录了(大概7~8分钟吧)

配置EVE-NG
软件配置
更新系统,安装软件
apt update
apt install openssh-server vim wget curl net-tools -y
配置 SSH
vim /etc/ssh/sshd_config
# 修改配置文件
Port 22
PermitRootLogin yes
PasswordAuthentication yes
重启 SSH服务
systemctl restart ssh
systemctl status ssh
然后就可以从 SSH 软件登录了,无所谓选什么,下面是我觉得好用的,排名不分先后
Xshell、FinalShell、Xterminal、iShell Pro、Termius、SecureCRT、MobaXterm
热插拔配置
注意,使用前最好创建快照,或源文件备份,避免出现未知BUG导致无法恢复!!!
将压缩包解压,传输到/root目录下,然后运行
cp -r /root/opt/* /opt/
上传镜像
png图标上传到
/opt/unetlab/html/images/icons
.py文件上传到(/opt/unetlab/scripts是旧目录,现在已经不用了,不要整错了)
/opt/unetlab/config_scripts
然后修改权限 chmod 755
yml文件上传到对应目录,取决于你的CPU(Intel or AMD)
/opt/unetlab/html/templates/intel
/opt/unetlab/html/templates/amd
设备镜像qemu连带文件夹上传到
/opt/unetlab/addons/qemu
运行
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
如果出现这个报错(这个一般是没有开启嵌套虚拟化会提示)
PHP Warning: file_get_contents (/opt/unetlab/platform/): failed to open stream: No such file or directory in /opt/unetlab/html/includes/init.php on line 71
依照以下方法尝试解决
cat -n /opt/unetlab/html/includes/init.php
# 确认 第 71行 是不是这样的内容
71 $kvm_family = file_get_contents("/opt/unetlab/platform");
如果不是,运行
dmesg | grep -i cpu | grep -i -e intel -e amd
# 如果出现 intel,运行
echo "intel" > /opt/unetlab/platform
# 如果出现 amd,运行
echo "amd" > /opt/unetlab/platform
修改默认Web端口
默认端口 80 不可修改,只能添加其他端口
8080 为内部映射端口,即将 8080 → 80,如果你要添加其他端口如 63110
应该监听 63110,然后添加映射 8080 → 63110,不用修改原始映射
/etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 63110 # 新加
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
/etc/apache2/sites-enabled/unetlab.conf
# 新端口 63110,以下内容都是新加,不要修改其他配置
<VirtualHost *:63110>
ServerAdmin webmaster@unl01.example.com
DocumentRoot /opt/unetlab/html
# 日志文件建议独立,便于区分不同端口访问记录
ErrorLog /opt/unetlab/data/Logs/error_63110.txt
CustomLog /opt/unetlab/data/Logs/access_63110.txt combined
# 静态目录别名
Alias /Exports /opt/unetlab/data/Exports
Alias /Logs /opt/unetlab/data/Logs
# HTML5 Guacamole 反向代理到内部 8080 服务
<Location /html5/>
Order allow,deny
Allow from all
ProxyPass http://127.0.0.1:8080/guacamole/ flushpackets=on
ProxyPassReverse http://127.0.0.1:8080/guacamole/
</Location>
# WebSocket 通道代理(保持原内部端口)
<Location /html5/websocket-tunnel>
Order allow,deny
Allow from all
ProxyPass ws://127.0.0.1:8080/guacamole/websocket-tunnel
ProxyPassReverse ws://127.0.0.1:8080/guacamole/websocket-tunnel
</Location>
</VirtualHost>
重启 Apache 服务
# 修改两个文件
vim /etc/apache2/ports.conf
vim /etc/apache2/sites-enabled/unetlab.conf
# 验证配置文件格式
apache2ctl configtest
# 格式支持会输出以下内容
Syntax OK
# 重启 apache 服务
systemctl restart apache2
测验
OK了,测试公网访问成功

自部署安装 EVE-NG
如果你是用 ISO 直接部署的,
OK这一部分你不用看了
使用 ISO镜像 安装 Ubuntu 22 LST 系统,然后部署 EVE-NG 的,你可以参考以下内容
Ubuntu 22 默认使用 NetworkManager 管理IP,这玩意不好使,建议使用 if up/down
/etc/netplan/01-xxxxxxxxxxxx,这是 NetworkManager 的配置文件
NetworkManager 配置大概这样,对缩进要求很严格,还是别用了
if up/down 的配置文件在 /etc/network/interfaces,你只需要配的通网,EVE-NG 安装脚本会自己配其他的
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens18:
dhcp4: no
dhcp6: no
addresses:
- 192.168.1.15/24
routes:
- to: 0.0.0.0/0
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
- 223.5.5.5
下载 EVE-NG 安装脚本,并运行
wget https://www.eve-ng.net/jammy/install-eve.sh
bash install-eve.sh
如果 脚本运行时安装 EVE-NG 组件很慢,下面有代理配置参考
/etc/environment 配置代理
# HTTP/HTTPS 代理
http_proxy="http://127.0.0.1:10808/"
https_proxy="http://127.0.0.1:10808/"
# SOCKS5 代理(curl、wget、apt 等支持的统一变量名)
all_proxy="socks5://127.0.0.1:10808/"
# 不走代理的地址
no_proxy="localhost,127.0.0.1,::1"
使代理生效
# 使其生效
source /etc/environment
# 验证
printenv | grep -i proxy
# 如果未生效,运行
export $(grep -v '^#' /etc/environment | xargs)
# 可以使用 wget、curl 测试,不要使用 ping,因为它走 icmp