台式机+轻薄本:AI从业者的最佳设备配置指南

2023-10-18 08:51:09 浏览数 (2)

作为一名AI从业者,你选购电脑是否有过这样的苦恼:轻薄本便携 续航久,但GPU和散热弱;游戏本GPU比较强,但比较重、续航短;台式机高配置、硬盘空间大,但不能带出门;商业的GPU服务器租赁要不就是使用有要求,要不就是贵的离谱,还要担心商家提桶跑路 or 涨价 or 欠费停机数据被删。作为一个成熟但财力有限的开发者,想全都要,比较好的一种方式是买轻薄本 台式机。但拥有多台设备后,依然存在一些痛点问题,比如资料分散在两台电脑、出门在外依然难以查看实验结果。本文博主以自身经验为例,给出轻薄本 ubuntu台式机 frp ssh的配置指南,供大家选择性参考。

1. 轻薄本

博主现在使用的是2019年买的联想小新pro,win11系统。(但对 Macbook心动中) 连接服务器我使用的是 Xftp 和 Xshell 两个软件,我觉得它俩比 MobaXterm 好用多了,响应快不会断连。Xftp 和 Xshell 现在都能在官网下到,可免费使用,免费版与付费版功能完全一样(但免费版每次用完会有一个弹窗)。

调试和写代码我用 VScode 和 Pycharm,它俩都能连远程服务器。区别是VScode相当于直接打开服务器的文件夹,它不需要本地有任何项目文件所以不占用本地的存储空间,但是会在服务器端安装一个vscode-server,如果是新的服务器首次连接需要一些时间。而Pycharm需要在本地有项目文件,然后设置本地项目文件与远程文件同步。VScode对于一个服务器只需要设置一次,而Pycharm对于每个项目都要设置一次。

如果一个项目我可能会在多个服务器用,并且项目会调试好几个月,我会用pycharm。反之如果一个项目是临时跑一下试试,只用几周,我会用VScode。

设置本机的ssh:打开win11终端执行 cd ~/.sshls,如果路径下有id_rsa文件,说明已经有了ssh key不需要再生成。否则使用命令ssh-keygen -t rsa -C "yourname@163.com" 生成。生成的密钥和公钥后续要用。

2. 台式机

台式机以博主的Ubuntu18为例,首先允许台式机通过ssh登录,在ubuntu终端执行:

代码语言:javascript复制
sudo apt install openssh-server  # 安装
sudo service ssh start  # 启动ssh
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config  # 允许root登录
sudo service ssh restart

此时,让你的轻薄本和台式机在一个局域网中,轻薄本应该可以通过用户名密码ssh登录到台式机内网ip了。为了让登录更快捷且安全,我们配置一下通过密钥登录。将轻薄本中的公钥~/.ssh/id_rsa.pub拷贝到台式机的~/.ssh路径下,并在ubuntu中注册公钥:

代码语言:javascript复制
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh

然后编辑vim /etc/ssh/sshd_config文件,进行如下配置:

代码语言:javascript复制
RSAAuthentication yes
PubkeyAuthentication yes

配置完后,重启ssh服务:service sshd restart。此时,让你的轻薄本和台式机在一个局域网中,你的轻薄本应该可以通过密钥ssh登录到台式机内网ip。如果无法登录,请检查ubuntu中~/.ssh中的文件所有者和权限是否设置正确。成功后,禁用密码登录,只保留密钥登录: 编辑vim /etc/ssh/sshd_config文件,增加如下配置PasswordAuthentication no,然后重启ssh:service ssh restart

如果你的台式机放在自己家,你可以给你的运营商客服打电话,看能不能要到公网ip。如果有公网ip,恭喜你,你的配置结束了。如果你无法申请公网ip,就还需要配置frp内网穿透。在台式机配置frpc,即frp客户端。在有公网ip的云服务器配置frps,即frp服务端。

首先,下载适合自己系统的压缩包:https://github.com/fatedier/frp/releases

解压frp压缩包中的frpcfrpc.ini到任意路径,按照下面的步骤在ubuntu台式机上配置frpc:

安装systemd

代码语言:javascript复制
apt install systemd
vim /etc/systemd/system/frpc.service

写入内容

代码语言:javascript复制
[Unit]
Description=frpc
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/kpp/Software/frpc -c /home/kpp/Software/frpc.ini
ExecStop=/usr/bin/killall frpc
RestartSec=1min
KillMode=control-group
Restart=always
[Install]
WantedBy=multi-user.target

vim /path/frpc.ini 写入内容

代码语言:javascript复制
[common]
server_addr = x.x.x.x # 写你的公网ip
server_port = 7000
[ssh-main]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[ssh1]
type = tcp
local_ip = 127.0.0.1
local_port = 22001
remote_port = 60001

启动frpc,并设置开机自动启动

代码语言:javascript复制
systemctl start frpc
systemctl enable frpc

3. 公网云服务器

解压frp压缩包中的frpsfrps.ini到任意路径,按照下面的步骤在公网云服务器上配置frps:

用 yum (CentOS)或 apt (Ubuntu)安装systemd

代码语言:javascript复制
# yum
yum install systemd
# apt
apt install systemd

使用文本编辑器,如 vim 创建并编辑 frps.service 文件。 vim /etc/systemd/system/frps.service 写入内容

代码语言:javascript复制
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini
[Install]
WantedBy = multi-user.target

配置frps.ini:

代码语言:javascript复制
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = your_user
dashboard_pwd = your_password
eable_prometheus = true

使用 systemd 命令,管理 frps。

代码语言:javascript复制
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps

配置 frps 开机自启。 systemctl enable frps

配置完上述的frpc和frps,你就可以在任意地方通过公网ip和remote_port访问自己的台式机啦~你还可以访问http://x.x.x.x:7500查看你的frp仪表盘。

0 人点赞