chisel是A fast TCP/UDP tunnel over HTTP, 使用HTTP传输的快速TCP/UDP隧道。
简单应用

例子
Background: 内网只开放了22端口以及8080,并且以http服务的形式开放出来,需要vpn才能连接,并且为容器环境,仅数据目录能持久化
内网端:
1 2 3 4
| chisel server -p 9999 --reverse
|
外网端:
1 2
| chisel client $url R:7890:127.0.0.1:7890
|
1 2
| chisel client $url 1234:127.0.0.1:22
|
容器中创建用户
- 容器中的/home目录通常没有持久化,因此在新建用户时需要将目录放到挂载磁盘上
- 容器中的/etc等目录同样没有持久化,因此当容器重启后,用户便会消失,因此需要每次重启容器时重新创建用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| USERNAME="user" USER_UID="1001" USER_GID="1001" USER_PASSWORD="xxxxxx" USER_HOME="/data/home/$USERNAME"
if ! getent group $USERNAME >/dev/null; then echo "正在创建用户组 $USERNAME (GID: $USER_GID)..." sudo groupadd -g $USER_GID $USERNAME || { echo "[错误] 无法创建用户组"; exit 1; } fi
if id -u $USERNAME >/dev/null 2>&1; then echo "删除旧用户 $USERNAME..." sudo userdel -rf $USERNAME || { echo "[错误] 无法删除旧用户"; exit 1; } fi
echo "创建用户 $USERNAME (UID: $USER_UID)..." sudo useradd \ --uid $USER_UID \ --gid $USER_GID \ --home-dir "$USER_HOME" \ --shell /bin/bash \ --create-home \ $USERNAME || { echo "[错误] 无法创建用户"; exit 1; }
ENCRYPTED_PASS=$(openssl passwd -6 "$USER_PASSWORD") echo "$USERNAME:$ENCRYPTED_PASS" | sudo chpasswd -e || { echo "[错误] 密码设置失败"; exit 1; }
echo "设置目录权限: $USER_HOME" sudo chown -R $USERNAME:$USERNAME "$USER_HOME" sudo chmod 755 "$USER_HOME"
|
将以上脚本想办法放到一个容器重启时便会执行的bash脚本中,从而使得它能够在容器启动时重启。