在服务器中搭建远程集成开发环境

未完待续

服务器配置

在容器中使用 Linux 系统(以 Ubuntu 为例)

  1. 开启 IPV4 转发(可选)
    echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    
  2. 拉取镜像并运行
    $ sudo docker pull ubuntu
    $ sudo docker run -p 5401:22 -ti ubuntu bash
    
  3. 更新包管理仓库
    # apt update && apt upgrade -y
    
  4. 安装 ssh 和 vim
    # apt install openssh-server openssh-client -y && apt install vim && service ssh start
    

PC 端配置

配置 VSCode

  1. 安装 Remote-SSH 插件,插件配置具体请看这篇文章
  2. 安装 Docker 插件。
  3. 安装适用于 Windows 10 的 OpenSSH
    3.1 OpenSSH 版本查询
    $ Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
    
    3.2 安装 OpenSSH 客户端
    $ Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
    
  4. 生成用于远程登陆的公私钥(已安装可略过)
  5. 安装 ncat
  6. 编辑 .ssh\config 配置文件
    Host akanization
    User cubat
    HostName 10.64.x.xxx
    Port 22
    IdentityFile c:\Users\cubat\.ssh\id_rsa
    ProxyCommand C:\bin\nmap-7.70\ncat.exe --proxy-type http --proxy xxx.xxx.xxx.xxx:xxx %h %p
    

一些技巧

进入容器和退出容器

  1. 进入容器
    $ sudo docker attach [container_id]
    
  2. 退出容器(容器仍在后台运行)
    Ctrl + p; Ctrl + q
    

挂载磁盘目录到容器,使终端呈现彩色

  1. 挂载磁盘空间
    $ sudo docker run -it -v /AAA:/BBB ubuntu bash
    
  2. 使终端彩色输出
    $ sudo echo PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;01m\]\u\[\033[00;00;01m\]@\[\033[01;35;01m\]\h\[\033[00;31;01m\]:\[\033[00;00;01m\]\w \[\033[01;32;01m\]\$ \[\033[01;01;01m\]' >> ~/.bashrc
    

容器内的镜像可使用 Systemd 命令

  1. 构建可使用 init 的容器
    $ sudo docker run -tid -p 80:80 -p 22:22 --privilaged --name centos-2 centos:latest /usr/sbin/init
    
  2. 进入容器尝试是否可用
    $ sudo docker exec -it centos-2 bash
    # systemctl
    

重建 Docker0 网络

  1. 关闭 Docker 进程组
    $ sudo pkill docker
    
  2. 清空 Iptables 转发规则
    $ sudo iptables -t nat -F
    
  3. 关闭 Docker0 接口
    $ sudo ifconfig docker0 down
    
  4. 删除 Docker0 接口
    $ sudo brctl delbr docker0
    
  5. 重启 Docker 并查看是否可用
    $ sudo systemctl restart docker && sudo docker ps -a
    

参考资料

评论