PyCharm通过跳板机连接隔离内网服务器

一、场景说明

这一方案主要适用于处于严格网络安全策略下的开发环境,例如,高校科研实验室、企业内网或者私有云集群。在这些场景中,搭载高性能GPU的计算节点通常部署在隔离的内网中,无法通过公网IP或者局域网IP直接访问,开发者必须先连接一台具有访问权限的"跳板机"(Jump Host/Bastion Host)作为中转。

通过配置SSH隧道(Tunneling),可以让PyCharm穿透跳板机直连内网服务器,使得开发者能够完美融合本地IDE强大的代码补全与可视化调试功能,以及远程服务器的充沛算力,实现"代码在指尖,算力在云端"的无缝开发体验,彻底告别低效的文件传输与盲改代码。

下图是连接的图示:Pycharm通过Xshell实现的加密隧道,连上跳板机的内网环境,进而与内网GPU服务器进行信息传输。

二、实现步骤

2.1 安装Xshell

进入官网:https://www.xshell.com/zh/xshell/,下载Xshell。期间需要填写姓名和邮箱,填就完事儿了。然后点点点、安装。

版本无所谓,7版本、8版本,哪个都行。

2.2 配置隧道

先连上你的跳板机:打开xshell,点击左上角"新建"按钮;输入跳板机名称,输入跳板机IP,端口一般是22 ,跳板机名称可以任意,然后点击"连接"。

登录成功之后,点击xshell上方工具栏的"查看",然后点击"隧道窗格",创建隧道,步骤如下图所示:

此时xshell下方会出现一个隧道窗格,点击"转移规则",右键空白区域,点击"添加"

在转移规则中,类型选择"Dynamic(SOCKS4/5)",填写一个侦听端口(这个端口是随你填的,只要不跟其它应用冲突就行,这里给出的建议是大一点的数可能会好点,比如"23456"),最后点击"确定"

然后在跳板机窗口下方的隧道窗格的转移规则中,就会显示一条规则,如果这条规则的状态是"打开"的,那么就意味着这条隧道就创建成功了。如图所示:

2.3 配置Pycharm

在PyCharm中,打开Settings,在Python Interpreter处,点击右上角的"Add Interpreter",选择"On SSH",添加一个SSH配置。所需要的关键信息如下图所示:

  • 内网服务器IP、用户名、端口22、密码;
  • 添加一个Proxy代理,其Proxy字段选择"SOCKS",Hostname填"127.0.0.1"(跟localhost应该是一个东西),Port填刚刚创建隧道的那个端口。

然后点击"Test Connection",如果显示"Successful"那么就说明你已经实现通过跳板机连接上一个隔离内网的服务器,如下图所示:

2.4 连接示例

连接之后,就可以为你的项目配置相应的解释器和项目位置映射啦:

如果你在代码之中调用了这些库,编译器就可以实时为你检查报错,让你知不知道缺不缺这个库,例如:

图中我所选的服务器的解释器没有openpyxl这个库,所以它报错了;而我已经安装了accelerate这个库,所以它没有报错。

相关推荐
暴力求解12 小时前
Linux网络---传输层协议TCP(二)
linux·服务器·开发语言·网络·tcp/ip
JoyCong199812 小时前
ToDesk个人版、专业版、游戏版、设计版、性能版、团队版权益介绍
大数据·运维·游戏·远程工作·远程操作
Elastic 中国社区官方博客14 小时前
ES95:面向 Elasticsearch 时间序列指标的自适应压缩
大数据·运维·elasticsearch·搜索引擎·架构·全文检索
80s77714 小时前
动态ip和静态ip有什么区别
服务器·网络·tcp/ip
mqiqe15 小时前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络
mennekes15 小时前
数据中心安全配电设备如何选择?
运维·人工智能·科技·安全·制造
开始学AI16 小时前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器
晨枫阳16 小时前
@changesets/cli是什么?哪些情况下需要使用?怎么使用
linux·运维·ubuntu
天远Date Lab17 小时前
零信任架构实战:基于天远行驶证核查构建自动化车队准入网关
运维·人工智能·架构·自动化
不会就选b17 小时前
Linux之网络基础(二)
linux·运维·网络