通过跳板服务器连接学校内网服务器并连接pycharm
推荐大家非常好的ssh入门教程,详细地介绍了本地转发
阮一峰大佬ssh
朱双印大佬的教程,也是老熟人了
更形象地解释本地转发
pycharm官方文档
扩展小知识:
转发=映射
”本地转发”表示ssh发起方(也就是本地)是映射转发者
”远程转发也叫反向隧道”表示ssh发起方是映射真身,远程是映射转发者
也就是ssh发起方是转发者叫本地转发,或本地映射,远程转发是ssh接受方是转发者也就是本地不是转发者
本地远程二者的区别朱双印大佬的博客写的非常详细,推荐
要补充一点是本地和远程命令的一致性
都是
SSH -R或-L [被映射ip:]被映射端口:映射ip:映射端口 要ssh的用户@要ssh的ip
记住这一条指令,其他的啥都好理解了
已知有两种方法
1.直接使用ssh -L的命令进行本地转发(local farwarding)
教程1
教程2
2.使用MobaXterm的隧道工具实现本地转发
设置非常简单
教程
更推荐大家使用软件MobaXterm来代替命令,其实本质上都是一样的,软件也是调用ssh命令,但软件更好管理。
优化:
1.对ssh服务器设置公钥,2.设置config
Host jluHostName localhostPort 5000User zxyIdentitiesOnly yes
就像这样子,下次输入ssh jlu即可直接登录,本质就是下面提供了默认的参数,就像--p 5000这样
常见的错误
使用的localhost端口是已经被其他进程占用的端口
最开始使用的是6000端口,但是最开始一直无法start,正常情况下运作的话应该是start不亮,stop亮。如下图是正常工作的按钮,但6000端口无法正常工作。
原因在于6000端口有其他进程在占用导致不成功
小知识
输入命令
netstat -ano|findstr "6000"
表头,pid也就是最后一列代表了正在使用该端口的进程
6000占用情况
发现6000端口已经被相当多进程占用了,此时再用6000会极大概率造成冲突,这也是为什么隧道无法建成的原因,正常情况下一个端口只能被一个进程监听,但一个进程可以监听多个端口,是一个一对多的情况,但这里却不是这样,有的博客是说是完全可以一对多的
小知识(可选读):
如上图是我用指令查找到的7890端口的情况,可以看到7890端口监听了0.0.0.0:0也就是所有端口,ESTABLISHED表示已经建立了连接,、就比如第4行,表示13036的clash在7890端口,与6779端口建立了连接。第三行表示13036的clash在7890端口监听所有ip地址的连接请求,也就是所有ip向13036发起连接,他都能接受。github桌面程序想要与github.com交换信息,需要从7890端口出去,由clash代替6779端口与github.com交换信息。上面都是基于进程的桌面端的,然后web浏览器的访问代理是需要打开windows设置中的使用代理服务器,让流量每次发送都通过代理服务器,这样才能让浏览器也达到一样的效果
端口与进程
解决方法
使用没有进程被监听的本地端口,比如5000
pycharm配置
pycharm配置
1.建立ssh会话
2.解释器选择和映射
设置如下图
值得注意的是母选项卡为项目:项目名,这里的东西都是会随着项目文件夹而改变的设置,每个项目都是独立的,这些设置被存储在项目文件夹的.idea文件夹里,不同项目的设置当然无法同步。
记得每一个新项目一定要填解释器的路径映射,将本地项目路径映射到远程项目,在执行代码时,一定要使用本地的文件,pycharm会自动映射本地路径到远程项目路径,实际上执行的是远程的映射文件,使用的是远程编译器。
上图为Python路径
3设置sftp,内网服务器到本地的文件映射
这一步其实可以不用执行了,因为在设置解释器时就已经添加好了一个sftp
这里写用户路径
这里写项目路径,本地也新建一个同项目名相同的文件夹就好了,这个也是每次更换项目要重新设置,注意此处千万不要设置仅对此项目可见,否则会无法正常加载python解释器!
上图中zxy@127.0.0.1的那个sftp是解释器创建的关于项目文件的映射,我们可以用它也可以用自己创建的,只要文件路径映射的没问题就行
再次对部署进行检查,主要就是看部署的路径对不对,路径=根路径+部署路径,此外这个部署配置必须设置为默认部署(上方的对勾要对他设置,默认部署是加粗的,如第一行配置所示),因为pycharm同时只能与一个部署配置同步,不设置好默认部署很可能东西传到其他部署配置指定的路径上了
顺便可以打开自动上传,经验证只要是本地和云端在已经同步的情况下(即状态已经是=了,后面会将)在本地做修改会自动上传到云端,小的py文件可以自动同步,另外本地添加删除py文件也能自动同步,意思就是在本地修改完py文件,直接运行就行,云端已经同步好了。
打开选项,可以看到远程主机的设置
每一个选项都能在官方的文档中找到详细地解释,覆盖最新文件我觉得应该可以关掉吧,应该是关掉更好?时间戳是肯定要保留的,也是作为两个文件相同的依据嘛。我觉得这里的设置都可以不动,因为目前没有必要,只要满足只在本地修改py文件的原则,就能够正确同步,其他的啥都好说。
pycharm官方文档
4.文件同步
首先要设置好本项目的默认部署服务器,在下面选好
法1、点击下载自,进行下载
第一次的话左边本地的项目文件应该是空的,我们要直接将远程服务器的文件都给下载下来 ,但注意数据集最好单独操作,否则要下一年!
法2(推荐)、使用同步对话框也可以达到全都下载、上传的功能
该方法管理更加方便,功能强大, 右击项目文件夹(云服务器上的还是本地创建的都行,上一步以及映射过了)
此时会进入同步选择页面,我们可以自行选择是否同步
页面功能详解
总览
这三个分别是同步选定项,全部同步,是否隐藏排除的文件
同步选定项 | 只同步选中的该项 |
全部同步 | 同步所有不为相等(也就是不为等号的文件)的文件,涉及到后面的知识 |
是否隐藏排除的文件 | 指的是git ignore的文件 |
比较依据一般都选择二进制内容,我们只要保证二进制内容一样就说明同步是正确的
文件操作状态
标红的这一列非常重要,代表了文件的同步状态
1.等号
说明二者是相等的,是否相等取决于比较依据,这里是文件二进制相等,文件就认为是相等的
2.其他符号
在文件不为等号即不同步时可以右击打开菜单栏,调整对该文件的操作
总览
第一组
第一行:从本地传到云端
第二行:从云端 传到本地
第二组
这两个和上面的箭头好像 没有区别
不等于号
这个标记千万要小心使用会同步删除左右两端的这个文件,使用时一定要小心以免误删
4.特殊同步-数据集
数据集文件太大,不适合上面的同步方法,我们需要生产压缩包再进行上传,再终端中输入解压命令,完成同步。本地映射可以没有数据集,但远程必须要有数据集,因为是在远程执行的嘛。
常见错误和注意事项:
注意:一定要在远程部署服务器和解释器都配置好的情况下再进行操作,比如下载包,进行编译什么的,否则可能会出现一些因为环境搞错而产生的错误。
1、有时会出现错误:No such file or directory
参考连接
要注意
1.使用本地的文件运行
2.配置好python解释器的映射
2、确定好再进行上传和下载
paycharm上传并不像百度网盘啥的有缓存的机制,上传直接覆盖原文件或者直接在上面进行修改,也就意味着一旦在上传、下载的时候终止上传、下载,那就会导致接收端的文件是不完整的,此时还要确定好重新传输,就像这一种
这zip就是在传输过程中还没有传完,是左边在向右边传,这个箭头反了是正常的,因为页面刷新他每次刷新都指向发送方,但我执行指令时箭头是向右的。我如果此时中断,右边就会有一个残缺版本的zip,就会导致两边不一致。
小提示:一般刷新后箭头对着的是发送方,日期老的是发送方,文件大的是发送方,可以根据这个确定发送方和接收方,中断时重新传输
3.报错: 错误:Can't get remote credentials for deployment server
原因deployment server也就是部署服务器的sftp设置成了仅对项目可见
全部把打钩给取消掉
远程调试展示图片
教程连接
要使用ssh -X命令(更推荐使用mobaxterm,他的每一次ssh连接都是ssh -X),据说是X11会自带在远程主机上创建一个图像输出端口,使用如下命令就可以看到图像输出端口开在了哪。
pycharm添加上我们要输出到刚刚ssh -X打开的端口,如下配置
之后就可以正常本地展示了,mobaxterm开启的ssh -X终端不能关闭,否则输出端口将会跟着关闭了
通过跳板服务器连接学校内网服务器并连接pycharm相关推荐
- MacBook 无法连接公司内网服务器
MacBook 无法连接公司内网服务器 知道公司服务器IP 和账号密码 知道公司服务器IP 和账号密码 知道公司服务器IP地址和账号密码 用win7系统正常连接 但是用MacBook连接总是报错,已解 ...
- vscode 经过跳板机,连接到内网服务器
1.背景:为啥要用跳板机? 一般实验室等环境的服务器是设置在内网环境中的,无法直接使用笔记本在公共环境下直接连接.但是由于种种原因,会出现在这样的场景下需要连接服务器的需求,而通过跳板机是一种常见的办 ...
- 【环境配置】反向SSH——家中电脑连接校园内网服务器
1. 需求描述 1.1 具体情境 实验室有一台校园内网GPU服务器,校园内网的特点是只允许内网机器主动访问外网机器,而不允许外网机器主动访问内网机器. 现在需要使用家中的电脑(无公网IP的机器,其可能 ...
- linux外网服务器跳转内网服务器实现内网访问(iptables)
服务器信息如下 外网服务器:eth0:公网IP eth1:内网IP(192.168.10.205) 公网对外提供服务,内网IP与内部局域网通信. 配置过程: (1)开启iptables service ...
- 知网、万方数据库免费下载论文------比连接学校内网速度快数倍不止(有的学校万方数据库不支持下载)
最近正值毕业设计准备之际,相信很多小伙伴没法下载论文,不过有部分计算机专业的小伙伴肯定有办法的. 之前使用学校开发的***(不多说,因为打上发不出来)软件可以连接学校内网,不过只有老师才能拥有账号,并 ...
- 局域网搭建微信服务器_通过内网服务器支持微信公众平台开发
背景:因为微信公众平台支持的后台服务器只允许为80端口,而本地服务器开发程序与在VPS上部署程序运行,每次无论是使用scp还是ftp进行文件传输无疑是低效的,因此需要一种方法可以方便的在本地服务器调试 ...
- 【银河麒麟V10】【服务器】设置内网服务器时间同步
方法1:ntp方式 步骤1:服务端配置 # yum install -y ntp //系统自带 # vim /etc/ntpd.conf # systemctl restart ntpd ...
- python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器
使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...
- 使用跳板机在Pycharm上配置内网服务器
使用跳板机在Pycharm 上使用内网服务器环境 最近遇到一个问题:实验室服务器仅限内网访问,无法在家(外网)访问实验室的所有内部服务器,但同时实验室又提供了一个外网可以访问的跳板机,虽然可以先s ...
最新文章
- 给羊羔:学习web前端开发的路线(一)
- jquery serialize()无效读取不到数据
- php传输数据arduino,Arduino如何和php,html文件一起使用?
- Python中使用static、class、abstract方法
- 开课吧Java课堂:如何利用valueOf( )方法实现数据转换
- mips32和x86下的大小端模式判定
- IPO屡战屡败 而立之年WPS 能否闯关成功?
- Ubuntu 安装绿联CM448无线网卡驱动
- linux pbs 用户时间,Linux/超算中PBS常用命令
- JS 今天/明天的日期
- Python习题——2018-03-28作业
- 大疆创新2019校招
- 竟领先15% 解密飞行堡垒吃鸡重装版强悍性能
- hdmi怎么支持2k分辨率_选择2K显示器有没有必要?
- kali WiFi密码破解分享
- .net 本地文件管理 代码_如何在百万行代码中发现隐藏的后门
- 关于IDEA不生成out文件无法执行程序的问题
- CPU、GPU、TPU的原理简述及其区别
- Uni-app之Nvue开发细节总结
- BZOJ 4399: 魔法少女LJJ
热门文章
- [python] 取出字典中值最大的2个元素(键-值)
- toString()和String()
- CSS精灵 background-position用法
- VB.NET学习笔记:操作数据集DataSet中DataTable数据行(DataRow)——新增、插入、复制、克隆
- 计算机系统如何恢复出厂设置路由器,路由器怎么恢复出厂设置
- 关于Excel文件导入
- word修订显示修订人_在政治团体中使用修订控制的5大好处
- Toronto Research Chemicals 杀菌抗生素丨磷霉素-蔗糖醚二钠盐
- 老司机 iOS 周报 #27 | 2018-07-16
- Employees数据库的导入