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这个库,所以它没有报错。

相关推荐
yenggd2 小时前
华为+sr-mpls BE简单配置案例
运维·网络·华为
专注VB编程开发20年2 小时前
vb.net宿主程序通过统一接口直接调用,命名空间要一致
服务器·前端·.net
Sleepy MargulisItG2 小时前
【Linux网络编程】传输层协议:UDP
linux·服务器·网络·udp
xiejava10183 小时前
为了管好IP我上了一套开源的IP管理系统phpIPAM
运维·安全·开源·网管
weixin_436525074 小时前
Linux 终端下的 My Sql 常用操作指南(替代 Navicat)
linux·运维·服务器
上海蓝色星球11 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库
爬山算法13 小时前
Netty(10)Netty的粘包和拆包问题是什么?如何解决它们?
服务器·网络·tcp/ip
Sleepy MargulisItG13 小时前
【Linux网络编程】应用层协议:HTTP协议
linux·服务器·网络·http
logic_513 小时前
静态路由配置
运维·服务器·网络