惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
博客园_首页
J
Java Code Geeks
C
Check Point Blog
I
InfoQ
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
D
Docker
U
Unit 42
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
GbyAI
GbyAI
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog

二叉树的博客

科研与小团队 GPU 共享容器完整方案:从零搭建 OneClickVirt 管理平台并通过 Agent 模式纳管内网 GPU 节点 Ray 支持昇腾 NPU 的 KubeRay 对接记录 openEuler 22.03 arm64 离线包适配记录 在线 IDE 的通用容器镜像打包流程 麒麟 V10 安装时配置本地源 BKE 与 BMP 部署排障流程 containerd 允许 HTTP 镜像仓库拉取 Red Hat 8 amd64 离线依赖适配记录 通用docker容器镜像打包应用的流程 kubevirt初体验 kubevirt初体验 魔改dockur制作可迁移的Windows镜像(单文件) 魔改dockur制作可迁移的Windows镜像(单文件) 通过dockur制作可迁移的Windows镜像(双文件) 通过ProxmoxVE制作kubevirt可用的Windows镜像 通过dockur制作可迁移的Windows镜像(双文件) 通过ProxmoxVE制作kubevirt可用的Windows镜像 基于docker的在线IDE制作(支持浏览器直接访问) 基于docker的在线IDE制作(支持浏览器直接访问) k8s日常问题排障 k8s日常问题排障 jetbrains家的goland项目可用但老爆红 jetbrains家的goland项目可用但老爆红 机房本地服务器自建Gitea并使用 机房本地服务器自建Gitea并使用 nvidia-smi被自动升级无法与GPU通信了怎么办 conda使用GPU时的一些陷阱 在Pycharm上连接远程虚拟环境进行使用 给机房的Ubuntu22.04安装LXD共享GPU资源 给机房的Ubuntu22.04的Linux进行内穿映射端口
给机房的LXD容器配置跳板机进行连接
二叉树上的我 · 2024-05-14 · via 二叉树的博客

前言

由于机房的服务器(下称宿主机)都是没有公网IP的(只有NAT的IPV4网络),所以需要通过跳板机进行连接。

由于Pycharm的远程连接是通过SSH进行连接的,使用SFTP协议,所以仅使用22端口即可。

解除跳板机进程限制

由于到时候需要在跳板机上搭建很多映射,需要提前解放进程限制,在跳板机上执行以下命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 更新 /etc/security/limits.conf 文件
echo "更新 /etc/security/limits.conf 文件..."
sed -i '/^root soft nofile /d' /etc/security/limits.conf
sed -i '/^root hard nofile /d' /etc/security/limits.conf
sed -i '/^\* soft nofile /d' /etc/security/limits.conf
sed -i '/^\* hard nofile /d' /etc/security/limits.conf
echo "root soft nofile 1000000" >> /etc/security/limits.conf
echo "root hard nofile 1000000" >> /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf

# 更新 /etc/pam.d/common-session 文件
echo "更新 /etc/pam.d/common-session 文件..."
if ! grep -q "session required pam_limits.so" /etc/pam.d/common-session; then
  echo "session required pam_limits.so" >> /etc/pam.d/common-session
fi

# 更新 /etc/pam.d/common-session-noninteractive 文件
echo "更新 /etc/pam.d/common-session-noninteractive 文件..."
if ! grep -q "session required pam_limits.so" /etc/pam.d/common-session-noninteractive; then
  echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive
fi

# 更新 /etc/systemd/system.conf 文件
echo "更新 /etc/systemd/system.conf 文件..."
sed -i '/^DefaultLimitNOFILE=/d' /etc/systemd/system.conf
echo "DefaultLimitNOFILE=1000000" >> /etc/systemd/system.conf

# 更新 /etc/systemd/user.conf 文件
echo "更新 /etc/systemd/user.conf 文件..."
sed -i '/^DefaultLimitNOFILE=/d' /etc/systemd/user.conf
echo "DefaultLimitNOFILE=1000000" >> /etc/systemd/user.conf

sleep 1

systemctl daemon-reload

然重启跳板机,再执行

查询当前进程限制,应当显示1000000

端口转发配置

首先需要将容器的内网22端口映射到宿主机的公共端口上,我选择将user1容器的22端口映射到宿主机的10022端口上。

宿主机执行:

1
2
3
ctname="user1"
ctssh="10022"
lxc config device add "$ctname" ssh-port proxy listen=tcp:0.0.0.0:$ctssh connect=tcp:127.0.0.1:22

然后需要将宿主机的10022端口映射出来,映射到跳板机上的10022端口上。

跳板机执行:

1
2
3
tb_port="10022" # 跳板机上的端口
sz_port="10022" # 宿主机上的端口
sudo proxy server -r ":${tb_port}@:${sz_port}" -P "127.0.0.1:8800" -C proxy.crt -K proxy.key --log proxy.log --daemon

其他端口也按照对应的方式映射,自行修改端口号即可。

后言

上述在跳板机上的所有配置均为一次性配置,务必在重启跳板机后,重新执行这些映射命令,不会自动保留映射关系。

重启跳板机后务必事先设置本地监听端口8800,我的配置如下

1
sudo proxy bridge -p ":8800" -C proxy.crt -K proxy.key --forever --log proxy.log --daemon

然后再进行端口映射等操作。