现在很多廉价或者免费小鸡是IPv6 Only。一部分小伙伴们不熟悉IPv6,或者日常使用中没有IPv6环境,不知道如何方便的连接SSH。这时候就可以自建一个WebSSH,并用IPv4来访问这个WebSSH,借以访问IPv6的小鸡SSH。自建WebSSH可以避免使用公共WebSSH所带来的风险。我以在IPv6小鸡本地建立WebSSH来说明。
首先,第一次要登陆小鸡,要么你的空间商提供VNC,要么你得找一个有IPv6的临时环境(比如手机热点),或者找个双栈VPS。
假定你已经临时登录了你的IPv6小鸡。
下载WebSSH,这类应用在Github很多,我选择一个超级简单的https://github.com/Jrohy/webssh
假定你用的是Debian。因为我发现Alpine Linux上面居然用不了,可能是musl的锅,懒得找原因了。
我把它放在/opt/webssh/下面,当然你也可以另外找路径,如果你熟悉linux的话。
mkdir /opt/webssh
wget https://ghfast.top/https://github.com/Jrohy/webssh/releases/download/v1.29/webssh_linux_amd64 -O /opt/webssh/webssh
chmod +x /opt/webssh/webssh
制作一个简单的启动文件
nano /etc/systemd/system/webssh.service
里面的内容是
[Unit]
Description=webssh service
Documentation=
After=network.target nss-lookup.target
[Service]
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_SYS_PTRACE CAP_DAC_READ_SEARCH
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_SYS_PTRACE CAP_DAC_READ_SEARCH
ExecStart=/opt/webssh/webssh -p 80
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=10s
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
保存退出,启动并启用开机启动
systemctl start webssh
systemctl enable webssh
systemctl status webssh
如果status没有错误的话就说明已经启动了。可以访问http://[你的IPv6]来看看能不能访问。正常情况下你应该可以看到如下的页面。

这时候,还是需要IPv6来访问这个webssh,显然不符合我们的要求。这时候我们就需要大善人Cloudflare提供的免费双栈CDN来达到IPv4访问的需求。假定你有Cloudflare账号并有个域名的DNS托管在Cloudflare。
添加一个二级域名,比如ssh,webssh或者任何你喜欢的名字。添加AAAA记录,指向你的IPv6小鸡的IPv6,并打开小云朵。

点击左侧的SSL/TLS

配置SSL/TLS

在自定义SSL/TLS下面选择“灵活”,并保存

等个几分钟,这时候你的子域名应该已经生效了,尝试直接用https://你的域名,来访问这个WebSSH,理论上不会有啥问题。
默认是密码登录。

在Password上点一下会切换成密钥登录。

如果本机登录的话,可以使用127.0.0.1作为Host,如果登录其他VPS,需要输入对应的IP地址。
注意,目前你的WebSSH建立在IPv6小鸡上,所以你的小鸡没有IPv4访问能力,所以你不能用这个WebSSH访问其他IPv4的SSH,除非你去装一个Warp并打开双栈出口。