设置本地远程访问
让我们从设置本地访问开始,这将允许您在同一家庭 Wi-Fi 网络上时进入 GPU 服务器。这非常适合在家工作设置,其中您的工作站在生活空间的一角运行。ssh
1. 安装 SSH 服务器
首先,我们需要安装一个 SSH(Secure Shell)服务器。这将使您能够安全地远程访问您的 GPU 机器。在 Ubuntu 机器上打开终端并运行以下命令:
sudo apt update &&
sudo apt install openssh-server
此命令更新您的包列表并安装 OpenSSH 服务器。
2. 启动并启用 SSH 服务
接下来,使用以下命令启用 SSH 服务:
sudo systemctl enable –now ssh
可以通过运行以下命令来验证服务是否已启用:
sudo systemctl status ssh
查找以 for 开头的行。这表示 SSH 服务已启动并正在运行。Active: active (running)ssh.service
注意:默认情况下,OpenSSH 服务器在启动时开始运行。
3.配置防火墙
要允许通过系统防火墙进行 SSH 连接,您需要打开相应的端口。Ubuntu 的默认防火墙 UFW(简单防火墙)使此过程变得简单:
sudo ufw allow ssh
此命令向防火墙规则添加异常,允许传入的 SSH 连接。您可以通过以下方式检查 SSH 状态:
sudo ufw status
您应该会看到类似于以下内容的输出:
To Action From
— —— —-
22/tcp ALLOW Anywhere
22/tcp(v6) ALLOW Anywhere (v6)
4. 连接到本地服务器
现在您的 GPU 服务器已设置完毕,是时候测试连接了。从您的笔记本电脑(应该与您的 GPU 机器位于同一本地网络上),打开一个终端并使用以下命令:
ssh user@local-ip-address
将用户替换为您的 Ubuntu 和本地网络上 GPU 机器的 IP 地址。userlocal-ip-address
要在工作站上查找您的用户名,您可以使用以下命令。whoami
要查找您的本地 IP 地址,请在您的工作站上使用以下方法之一:
运行并使用列出的第一个地址。hostname -I
使用 inet 获取更详细的网络信息。ip addr show | grep -w
如何在 Ubuntu Linux 上找到我的 IP 地址是一个很棒的博客。它解释了多个命令,例如 或 获取本地 IP 地址。ip addr show | grep -w inetnetworkctl status
您的本地 IP 地址通常以 192.168 开头。
注意:如果您的路由器动态更改工作站的本地 IP 地址,最好登录您的路由器并分配一个固定的本地 IP 地址,以确保访问一致。
如果一切配置正确,系统将提示您输入密码,之后您将获得对 GPU 服务器的远程访问权限。
5. 设置 SSH 密钥以进行无密码登录
建议设置基于密钥的身份验证,以提高安全性和便利性。这使您可以连接到远程服务器,而无需每次都输入密码。
设置基于 ssh 密钥的身份验证是很常见的。
有关设置 SSH 密钥的详细说明,请参阅 DigitalOcean 指南 在 Ubuntu 20.04 上设置 SSH 密钥。
设置外部远程访问
虽然本地访问非常适合在家庭网络内工作,但有时您需要从本地网络外部访问 GPU 工作站,例如从联合办公空间或舒适的咖啡馆访问。
实现此目的的一种简单而安全的方法是使用 ngrok。
ngrok 帮助创建从公共终结点到本地运行服务的安全隧道。它允许您将个人服务器暴露给互联网,无需复杂的网络配置即可从任何地方进行远程访问。
设置方法如下:
1. 安装 ngrok
首先,您需要在 GPU 工作站上安装 ngrok。打开终端并运行以下命令:
snap install ngrok
2. 创建一个 ngrok 帐户
访问 ngrok 的网站并注册一个免费帐户(如果您还没有)。
3. 连接您的帐户
注册后,您将收到一个身份验证令牌。在 GPU 工作站上,运行:
ngrok config add-authtoken YOUR_AUTH_TOKEN
您可以分别使用 和 获取配置文件路径和编辑。ngrok config checkvim <path>
4. 启动 ngrok 隧道
现在,您可以创建到 SSH 服务的安全隧道:
ngrok tcp 22
此命令将显示一个类似于 的 URL 。记下这个 URL。tcp://X.tcp.ngrok.io:PORT
5. 连接到您的工作站
从任何外部笔记本电脑,您现在可以使用以下方法通过 SSH 连接到您的 GPU 工作站:
ssh -p YYYY user@X.tcp.ngrok.io
替换为端口号和 ngrok URL 中的子域。替换为您的 Ubuntu 用户名。PORTXuser
上述步骤确保您可以从外部网络远程访问工作站。但是,没有人会每次出发前都手动启动 ngrok。
6. 让 ngrok 在启动时自动启动
要确保 ngrok 在工作站启动时自动启动:
一个。创建新的服务文件:
sudo vim /etc/systemd/system/ngrok.service
添加以下内容:
[Unit]
Description=start ngrok tunnel on startup
After=network.target
[Service]
ExecStart=/snap/bin/ngrok tcp 22
Restart=on-failure
User=<your_username>
[Install]
WantedBy=multi-user.target
替换为您的 Ubuntu 用户名。保存文件并退出编辑器。<your_username>
b.启用并启动服务:
sudo systemctl enable ngrok.service
sudo systemctl start ngrok.service
现在,ngrok 将在工作站启动时自动启动并创建一个隧道。
注意:使用免费帐户时,每次工作站启动时,ngrok 都会分配一个新端口 (YYYY)。可以从 ngrok 仪表板获取新端口。
7. 专用端口的付费 ngrok 帐户
对于重新启动时不会更改的专用 TCP 端点端口,需要付费的 ngrok 个人帐户 ()。$10/month
一个。预留 tcp 终结点
b.更新 ngrok 服务文件
添加以下内容:
[Unit]
Description=start ngrok tunnel on startup
After=network.target
[Service]
ExecStart=/snap/bin/ngrok tcp –region=<region> –remote-addr=<remote-address> 22
Restart=on-failure
User=<your_username>
[Install]
WantedBy=multi-user.target
将 、 和 替换为保留的 TCP 端点配置中的适当值。<region><remote-address><your_username>
通过此设置,即使系统重新启动,您的 SSH 远程端点也将保持不变。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/yzj/gpu/373.html