#!/bin/bash
set -e
# 检查是否以 root 权限运行
if [ "$(id -u)" -ne 0 ]; then
echo "This script must be run as root. Please use sudo or run as root."
exit 1
fi
# 输入容器名称
read -p "请输入容器名称: " name
# 选择配置单个端口还是多个端口
echo "请选择要配置的端口数量:"
echo "1) 配置单个端口"
echo "2) 配置多个端口"
read -p "请输入选择 (1 或 2): " choice
# 配置单个端口
if [ "$choice" -eq 1 ]; then
read -p "请输入要监听的端口号: " port
echo "配置单个端口代理:listen=tcp:0.0.0.0:$port connect=tcp:127.0.0.1:$port"
incus config device add "$name" nattcp-ports proxy listen=tcp:0.0.0.0:$port connect=tcp:127.0.0.1:$port
echo "已为容器 '$name' 配置了端口 $port 代理。"
# 配置多个端口
elif [ "$choice" -eq 2 ]; then
# 输入多个端口
echo "请输入要监听的多个端口(多个端口用空格分隔):"
read -p "例如:50000 50001 50002: " ports
for port in $ports; do
echo "配置端口代理:listen=tcp:0.0.0.0:$port connect=tcp:127.0.0.1:$port"
incus config device add "$name" nattcp-ports proxy listen=tcp:0.0.0.0:$port connect=tcp:127.0.0.1:$port
done
echo "已为容器 '$name' 配置了端口: $ports 代理。"
else
echo "无效选择,请选择 1 或 2。"
exit 1
fi
echo "操作完成。"