推荐大家非常好的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相关推荐

  1. MacBook 无法连接公司内网服务器

    MacBook 无法连接公司内网服务器 知道公司服务器IP 和账号密码 知道公司服务器IP 和账号密码 知道公司服务器IP地址和账号密码 用win7系统正常连接 但是用MacBook连接总是报错,已解 ...

  2. vscode 经过跳板机,连接到内网服务器

    1.背景:为啥要用跳板机? 一般实验室等环境的服务器是设置在内网环境中的,无法直接使用笔记本在公共环境下直接连接.但是由于种种原因,会出现在这样的场景下需要连接服务器的需求,而通过跳板机是一种常见的办 ...

  3. 【环境配置】反向SSH——家中电脑连接校园内网服务器

    1. 需求描述 1.1 具体情境 实验室有一台校园内网GPU服务器,校园内网的特点是只允许内网机器主动访问外网机器,而不允许外网机器主动访问内网机器. 现在需要使用家中的电脑(无公网IP的机器,其可能 ...

  4. linux外网服务器跳转内网服务器实现内网访问(iptables)

    服务器信息如下 外网服务器:eth0:公网IP eth1:内网IP(192.168.10.205) 公网对外提供服务,内网IP与内部局域网通信. 配置过程: (1)开启iptables service ...

  5. 知网、万方数据库免费下载论文------比连接学校内网速度快数倍不止(有的学校万方数据库不支持下载)

    最近正值毕业设计准备之际,相信很多小伙伴没法下载论文,不过有部分计算机专业的小伙伴肯定有办法的. 之前使用学校开发的***(不多说,因为打上发不出来)软件可以连接学校内网,不过只有老师才能拥有账号,并 ...

  6. 局域网搭建微信服务器_通过内网服务器支持微信公众平台开发

    背景:因为微信公众平台支持的后台服务器只允许为80端口,而本地服务器开发程序与在VPS上部署程序运行,每次无论是使用scp还是ftp进行文件传输无疑是低效的,因此需要一种方法可以方便的在本地服务器调试 ...

  7. 【银河麒麟V10】【服务器】设置内网服务器时间同步

    方法1:ntp方式 步骤1:服务端配置 # yum  install  -y   ntp    //系统自带 # vim /etc/ntpd.conf # systemctl restart ntpd ...

  8. python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器

    使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...

  9. 使用跳板机在Pycharm上配置内网服务器

    使用跳板机在Pycharm 上使用内网服务器环境 ​ 最近遇到一个问题:实验室服务器仅限内网访问,无法在家(外网)访问实验室的所有内部服务器,但同时实验室又提供了一个外网可以访问的跳板机,虽然可以先s ...

最新文章

  1. 给羊羔:学习web前端开发的路线(一)
  2. jquery serialize()无效读取不到数据
  3. php传输数据arduino,Arduino如何和php,html文件一起使用?
  4. Python中使用static、class、abstract方法
  5. 开课吧Java课堂:如何利用valueOf( )方法实现数据转换
  6. mips32和x86下的大小端模式判定
  7. IPO屡战屡败 而立之年WPS 能否闯关成功?
  8. Ubuntu 安装绿联CM448无线网卡驱动
  9. linux pbs 用户时间,Linux/超算中PBS常用命令
  10. JS 今天/明天的日期
  11. Python习题——2018-03-28作业
  12. 大疆创新2019校招
  13. 竟领先15% 解密飞行堡垒吃鸡重装版强悍性能
  14. hdmi怎么支持2k分辨率_选择2K显示器有没有必要?
  15. kali WiFi密码破解分享
  16. .net 本地文件管理 代码_如何在百万行代码中发现隐藏的后门
  17. 关于IDEA不生成out文件无法执行程序的问题
  18. CPU、GPU、TPU的原理简述及其区别
  19. Uni-app之Nvue开发细节总结
  20. BZOJ 4399: 魔法少女LJJ

热门文章

  1. [python] 取出字典中值最大的2个元素(键-值)
  2. toString()和String()
  3. CSS精灵 background-position用法
  4. VB.NET学习笔记:操作数据集DataSet中DataTable数据行(DataRow)——新增、插入、复制、克隆
  5. 计算机系统如何恢复出厂设置路由器,路由器怎么恢复出厂设置
  6. 关于Excel文件导入
  7. word修订显示修订人_在政治团体中使用修订控制的5大好处
  8. Toronto Research Chemicals 杀菌抗生素丨磷霉素-蔗糖醚二钠盐
  9. 老司机 iOS 周报 #27 | 2018-07-16
  10. Employees数据库的导入