Chroot to Rescue!

· 340 words · 1 minute read

很久之前,为了合规,公司换用了合法的 VPN 提供商。然而自此之后,我的 VPN 接入就成了问题。

  1. 对方号称有 Linux 客户端,但是官网不能下载;
  2. 对方的设备提供 L2TP 服务,然而跑一段时间就会挂掉。

前几天 IT 部门的小伙终于从供应商要到了 Linux 客户端,抓到本地一看,脚本和文档都写的贼矬。64-bit 系统上还是得跑 32-bit 的预编译好的程序。抱着怀疑的态度,我在本地设置了一个 chroot 环境:

$ sudo apt-get install debootstrap schroot

# the VPN client is for Ubuntu 16.04
$ sudo debootstrap --variant=minbase --arch i386 xenial \
	/var/chroot/ http://mirrors.163.com/ubuntu/

$ sudo cat<<EOF >>/etc/schroot/schroot.conf
> [xenial]
> description=Ubuntu Xenial
> directory=/var/chroot
> users=guest
> groups=adm
> root-groups=root
> personality=linux32
> EOF

$ sudo cp -r vpn-client /var/chroot/home/guest/
$ sudo schroot -l
chroot:xenial
$ sudo schroot -c chroot:xenial -u root

进到 chroot 环境后,按照手册顺利拨号成功。根据提供的命令查看连接状态, 也一直显示成功。然而还是连不上公司的网络。无奈换用 Windows 机器,得到登录报告:“用户已经登录,是否踢掉?”

Systemd v239 开始支持Portable Services, 系统有 239 更新后可以试试。

comments powered by Disqus