Linux 如何使用代理登录到集群
这里主要介绍 Linux,如何登陆到集群及如何使用 Docker 运行 EasyConnect
防止 EasyConnect 污染自己的环境
1. Docker 安装
什么是 Docker
Docker 是一种容器,容器是一个标准的软件单元,它打包代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。
Docker 容器镜像是一个轻量级的、独立的、可执行的软件包,包括运行应用程序所需的一切。容器将软件与其环境隔离开来,并确保尽管开发和暂存之间存在差异,但它仍能统一工作。
传统 vm 虚拟化环境运行应用,每个虚拟机存在一个 Linux 系统,会有很大一部分程序重复运行,浪费资源。
下载 Docker
打开终端,输入以下命令安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
安装完毕后运行以下命令开启 Docker
sudo systemctl start docker
尝试运行 hello-world
sudo docker run hello-world
如果成功出现 Hello from Docker!
则正常
2. EasyConnect
我们使用的 EasyConnect Docker 版来自这里
https://github.com/Hagb/docker-easyconnect
安装纯命令行版 EasyConnect
sudo docker pull hagb/docker-easyconnect:cli
完成后输入以下命令运行 EasyConnect
在使用 VPN 时请务必保持终端不要关闭
sudo docker run --device /dev/net/tun --cap-add NET_ADMIN -ti -p 127.0.0.1:1080:1080 -p 127.0.0.1:8888:8888 -e EC_VER=7.6.3 -e CLI_OPTS="-d vpn.hitsz.edu.cn" hagb/docker-easyconnect:cli
- 其中
-e EC_VER=7.6.3
表示使用 7.6.3 版本的 EasyConnect,请根据实际情况修改版本号。- VPN 服务器已指定
- 浏览器(或其他支持的应用)可配置 SOCKS5 代理(可以通过插件配置),地址 127.0.0.1,端口 1080;也可以使用 http 代理,地址 127.0.0.1,端口 8888。
上述命令输入后会要求输入账号密码,username
为学号,passwoord
为密码
3. 设置浏览器代理
主要有以下两种方法(只需选择一种)
a. Firefox 和 Chrome 均可使用 SwitchyOmega 进行管理
Firefox 打开下面链接安装 SwitchyOmega 插件
https://addons.mozilla.org/zh-CN/firefox/addon/switchyomega/
安装完后,在右上角打开 SwitchyOmega 的选项后出现下面的页面
在左边栏选择新建情景模式
在名称中填入一个名字,然后点击创建
创建完成后在情景模式中填入
- 代理协议
HTTP
- 代理服务器
127.0.0.1
- 端口
8888
选择应用更改
然后在右上角的 SwitchyOmega 插件里选择你刚刚创建的情景模式,就可以访问学校内网了
b. 使用系统代理
这里以 Gnome 环境举例
4. 登录到集群
浏览器代理配置好后,可输入网址登录集群
http://hpc.hitsz.edu.cn
在最上方导航栏选择项目里的 public_cluster
在划红线处,选择最右边按钮,ssh 按钮,可以看到服务器的**内网 ip**
在 左边导航栏 的 用户 一栏,可以看到自己的集群用户名
其中 u 开头的即是用户名
5. ssh
前面已经拿到了内网 IP,端口和 ssh 账号,下面介绍如何通过 SOCKS5 代理进行 ssh
先安装一个叫 netcat
的包,以 ubuntu 为例
sudo apt install netcat
因为貌似有几个命令都叫 netcat,所以尝试 netcat 命令,看看是不是安装了正确的 netcat
$ netcat
usage: nc [-46cDdFhklNnrStUuvz] [-C certfile] [-e name] [-H hash] [-I length]
[-i interval] [-K keyfile] [-M ttl] [-m minttl] [-O length]
[-o staplefile] [-P proxy_username] [-p source_port] [-R CAfile]
[-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout]
[-X proxy_protocol] [-x proxy_address[:port]] [-Z peercertfile]
[destination] [port]
若与上述一致则正确。
然后输入 ssh 命令
ssh -o "ProxyCommand=netcat -X5 -x 127.0.0.1:1080 %h %p" username@hostname -p peer
127.0.0.1:1080
为使用之前 EasyConnect Docker 的 SOCKS5 端口- username 为前面在 hpc 集群网站获得的 u 开头的用户名
- hostname 为网站获得的集群 ip
- peer 为端口
- ssh 登录密码为 hpc 平台登录密码
6. ssh 密钥快捷认证
在本机中输入
ssh-keygen
跟随指引,一路回车,便可完成 ssh 密钥的生成。请务必保存好自己的私钥,不要泄露!
接下来,我们将私钥加入到自己的身份认证中。在终端继续输入:
ssh-add ~/.ssh/id_rsa
然后将公钥打开
cat ~/.ssh/id_rsa.pub
复制其中的内容
在集群服务器上新建 authorized_keys
mkdir -p ~/.ssh
vim ~/.ssh/authorized_keys
这时会打开 vim 文本编辑器
按下 I 按键,进入编辑模式,并右键粘贴到上面节点终端中编辑界面的一个新行里。按下 Esc ,输入 :wq
并敲 Enter 键可保存并退出。