linux kill 掉所有匹配到名字的进程
如,要 kill 掉 swoole 相关的进程
ps aux | grep swoole | awk ‘{print $2}’ | xargs kill -9
ps 列出所有进程,
参数:
a - 显示现行终端机下的所有进程,包括其他用户的进程;
u - 以用户为主的进程状态 ;
x - 通常与 a 这个参数一起使用,可列出较完整信息。
grep 过滤掉不包含 “swoole” 的行
awk ‘{print $2}’ 获取进程 ID (PID, Process Identification),我们想 kill 掉某一个进程的时候需要通过 PID 指定特定进程
xargs 将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。
也就是将管道传递过来的每一个 PID 作为 kill -9 的参数

实验室服务器尽管已经设置代理上网,但是访问git的时候,只能通过http clone项目,因而不满于实际开发需求。因而需要换种方式实现。
上网搜索,发现大多数方案要求借助于代理服务。在非管理员条件下想要实现代理服务并不容易,而且系统已经内置了代理,两者也容易发生冲突。
借助先前git内网服务搭建的经验,采用中转的方式来实现。

在server端初始化git仓库

  • project: testcode

  • path: /data/d2/RIBLL2017NaMgAlSi/gitbackup

  • code: git init --bare testcode

    •  这一步会自动在gitbackup目录下创建testcode目录
  • edit: 在testcode目录下创建.gitignore文件

    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
    # Prerequisites
    *.d
    # Compiled Object files
    *.slo
    *.lo
    *.o
    *.obj
    # Precompiled Headers
    *.gch
    *.pch
    # Compiled Dynamic libraries
    *.so
    *.dylib
    *.dll
    # Fortran module files
    *.mod
    *.smod
    # Compiled Static libraries
    *.lai
    *.la
    *.a
    *.lib
    # Executables
    *.exe
    *.out
    *.app
    # root file
    *.root

    在server端自己的工作目录下clone testcode项目

  • code: git clone /data/d2/RIBLL2017NaMgAlSi/gitbackup/testcode

  • 随后即可进入testcode工作目录创建自己的项目文件。正常add,commit和push

    在个人电脑端clone testcode项目

  • code: git clone ssh://wuchenguang@*:2727//data/d2/RIBLL2017NaMgAlSi/gitbackup/testcode

    在个人电脑端配置

  • push到github(执行一次) git remote set-url --add --push origin git@github.com:mission-young/testcode.git

  • push到server(执行一次) git remote set-url --add --push origin ssh://wuchenguang@*:2727//data/d2/RIBLL2017NaMgAlSi/gitbackup/testcode

  • 同步push(需要时执行) git push

.bashrc 设置备份

  • server
    1
    2
    3
    # git --init bare project
    export gitserver=/data/d2/RIBLL2017NaMgAlSi/gitbackup
    # eg. git clone $gitpath/code 用于clone server项目
  • pc
    1
    2
    3
    4
    5
    6
    7
    8
    export gitserver=/data/d2/RIBLL2017NaMgAlSi/gitbackup
    export gitpath="ssh://wuchenguang@*:2727/$gitserver"
    # eg. git clone $gitpath/code 用于clone server项目
    export pushgithub="remote set-url --add --push origin git@github.com:mission-young"
    # eg. git $pushgithub/code 用于设置push到github
    export pushserver="remote set-url --add --push origin ssh://wuchenguang@*:2727/$gitserver"
    # eg. git $pushserver/code 用于设置push到server
    # 搞定上面几步之后,git push 可以同时上传到github与server

  • 服务器ip:162.105.151.64
  • 开放端口8900:jupyter-notebook服务
  • 开放端口8901:code-server服务

2020年公务员考试相关信息整理

  • 华图官网:http://www.huatu.com/guojia/
  • 照9月1号开始复习,12月1号考试,笔试历程整3个月,90天。
  • 2020国家公务员考试职位表尚未发布,根据往年国考职位表发布时间推算,2020国家公务员考试职位表发布时间很可能在2019年10月中下旬。2019国家公务员考试招录规模今年进行了缩减,共有中央机关75个单位和20个直属机构参加,计划招录14537人,共9657个职位。
  • 公告发布时即发布职位表,随后根据职位表选报。根据学历要求、专业要求、政治面貌要求、工作经历要求、地域特征等,进行选择。
  • 笔试分为两大块:行测和申论,行测包括十个部分,130道题,120分钟,分别为
     1. 数量关系–数学运算
     2. 言语理解与表达–逻辑填空
     3. 言语理解与表达–语句表达
     4. 言语理解与表达–阅读理解
     5. 判断推理–逻辑判断
     6. 判断推理–图形推理
     7. 判断推理–定义判断
     8. 判断推理–类比推理
     9. 资料分析
     10. 常识判断

国家公务员考试行测考试时间只有两个小时。
但是要完成5个专项130-135道题,根据了解,大部分考生做行测卷子后期都会碰到一个问题,时间不够,合理的时间安排可以说直接决定了行测能否拿高分。
在行测考试中共有5个专项9种题型(常识判断、图形推理、类比推理、定义判断、逻辑判断、逻辑填空、片段阅读、数量关系、资料分析)。
在这9种题型中有些题是需要快做的,包括常识判断,图形推理,类比推理,逻辑填空,常识判断20题,用时应控制在10分钟左右,平均30秒一道题左右,常识题不要去纠结,能做出来的很快就能做出来。
拓展资料:完善行测答题顺序,可提高效率
考前一个月左右的时候建议考生开始刷试卷,一来为了查缺补漏,二来就是找到最适合自己的做题顺序。
行测不仅考察的是你的解题能力,还考察考生两个小时的思维转换能力。每个考生的性格都不一样,有些考生适合从理性的思维跳到感性的思维,有些考生喜欢先做自己擅长的专项,有些考生需要一点时间才能进入做题状态等等,所以找到适合自己的做题顺序对行测作答可以起到事半功倍的效果。
先做常识进入考试状态,再做言语,接下来状态最好的时候做资料分析,趁热打铁完成判断推理,最后再做数量关系,做题顺序没有好坏之说,适合自己的就是最好的。
 申论只有一道大题,分为两大类题型,对策类和启示类。考试时间180分钟,总分100分。  

时间分配

 

  • 全面基础复习阶段 6周 手部受伤,前2周重点复习行测。根据书目录统计,
     1. 数量关系–数学运算 10节
     2. 言语理解与表达–逻辑填空 2节
     3. 言语理解与表达–语句表达 2节
     4. 言语理解与表达–阅读理解 6节
     5. 判断推理–逻辑判断 6节
     6. 判断推理–图形推理 7节
     7. 判断推理–定义判断 2节
     8. 判断推理–类比推理 4节
     9. 资料分析 3节
     10. 常识判断 12节

     课程总共有54节,2周时间为15天,需要一天完成4节内容。考虑到手的恢复情况,应将数量关系、判断推理–逻辑判断、资料分析三者往后放一点。剩下的部分大多需要在脑海中思考即可完成。因而复习顺序为:
     1. 2+3
     2. 4
     3. 4+7
     4. 6
     5. 6
     6. 8
     9. 10
     10. 10
     11. 10
     12. 1
     常识判断每天空闲的时候看一点。每天完成学习任务之后,查看app,进行做题。或者在路上的闲余时间进行做题。
     额外的时间听申论讲座。  

  • 重点提高阶段 3周

  • 纠错阶段 1周

  • 冲刺阶段 2周

贴吧攻略

各模块的备考方法 https://tieba.baidu.com/p/5995995816?pn=1

知乎收集的一些攻略

链接:https://www.zhihu.com/question/28345057/answer/41074035
我的计划就是按照3个月12周的时间来指定的。一共有四轮,
第一轮时长6周,全面基础复习阶段;每天上午行测,下午申论,晚上做题;复习时候我的方法主要是视频教程,这些教程都是在网盘上面免费分享的,我直接下载下来,每天看视频学习,做笔记。老老实实把行测和申论的基础班课程都学习了一遍,辅以少量的练习题,目的是全面的了解公考的知识点,做好笔记,并尽可能的掌握。其中申论是听张小龙的课程,行测数量关系部分是魏华刚和郭亮的课,这三位老师是讲课比较有风格和方法的,推荐一下。
第二轮时长3周,重点提高阶段,提升我第一轮复习中比较薄弱的地方;重点提升部分是通过第一轮学习过程中总结出来的,这一阶段主要学习方法是听视频+做题相结合,视频的话也是重点提高班或者高分班视频,相比来说课时短了不少,做题量增加,把重要的知识点认真学习一遍,掌握做题技巧与方法,并通过一定量的习题训练巩固。
第三轮时长1周,纠错阶段,我有一个错题本,在头两轮复习过程中做错的和不会的典型例题我都记录了下来,错题后面对应的都是考点,因此通过错题纠正以及练习同类题目的办法,把薄弱的考点彻底掌握。
第四轮时长2周,冲刺阶段,1到2天一套真题掐表训练。这个基本就是1天按照考试时间掐表做真题,然后晚上纠错,直到考前。

链接:https://www.zhihu.com/question/28345057/answer/267088186
我认为行测复习只分三个阶段。新人先学习一下整个行测模块,有哪些题型。(看书只需要2-3天)然后开始做题,计时110分钟做一套真题,你就知道自己的初始水平。有复习经验的可以跳过这步。
(有人问我就说一下我的做题顺序和时间安排:常识5min,言语30min以内,资料30min,判断30-35,答题卡+检查核对8min,数量放在填完答题卡后,有多少时间做多少。都是大概值。)
一阶段:言语、资料、判断正确率很低,离80%很远。这个阶段我建议就不用想别的了,除了找视频和资料拉通复习一下行测各模块并且做好笔记以外,刷题请着用粉笔app练重刷这三大块+间或做一下整套款。然后日常看人民日报+常识积累,每天15分钟就可以。
二阶段:言语、资料、判断正确率基本达到80%。恭喜,一般达到这个水平,一个套卷就基本可以得70分左右了。这个阶段视频只是补充,需要每天大量刷题来强化,让自己的分数从险险上70到稳稳上70。(粉笔模考+自己套卷建议比较能够判断水平)
三阶段:捡起数量和常识,继续刷题强化三大块。在70分甚至75以上,如果抓不到数量和常识,你会发现分已经很难提升了。三大块的学习也会在这个时候遇到瓶颈。这个阶段,三大块依然是不能放的,一是三天不练手生,二是不仅资料比较容易提升到90-100,言语和判断也有提升空间。但是可以考虑少做点三大块,多学习一下数量关系,做一做常识积累。数量开始提升得比较慢,不着急,每天30+数量坚持不到一月就可以看出来成效,常识积累我其实从一开始复习就开始积累了(算一阶段就做了准备的),很简单,每天粉笔刷一组常识专项,每次模考都做一个常识错题积累,每天听一个粉笔常识音频。我以前常识全靠乱蒙,后来常识也是乱蒙居多,但是正确率就很稳定了,大概60-70%是正常正确率。(常识比较玄学,数量关系的提升会比较看得见。)
我这样规划着的走,最后考前的模考就发挥稳定,也有了比较满意的分数。


二、国考要考多少分才能进入面试?整体如何规划?
国考一般职位在130分(副省级行测要过线60分、地市级一般55分)就可以进入面试,而要做到考130分,那么暂定一个目标就是行测要考70分,申论要考70分。行测通过备考学习训练,一般人情况下考65分是没有太大问题,申论的话70分也是挺好争取的。具体,行测的常识20个题目要做对13道,言语理解40个题要做对32个,数量关系15个题要做对7个题目,蒙剩下8个题(俗称做7蒙8),逻辑判断40个题目做对32个题目,资料分析20个题目争取全部都对。申论,前面4个题目争取拿到80%的分数即48分,后面大作文一般争取在二类文即20-25分。把这样的目标定好之后,接下来就是分模块进行各个突破。
如果将学习分为四个阶段:
第一个阶段就是掌握基础的知识,对每个知识点和考前进行全面覆盖的复习,掌握每种题型的解题技巧。这个阶段就是对公务员考试的基础常考的题型进行全面的复习和掌握,为后期提高做题速度夯实基础。很多人都说要提高做题速度,但是如何提高做题速度,很多人说要大量做题。但是,我想说,大量做题是无效的,大量做题的前提是你打下了很好的基础,大量做题才有意义,如果你只是为了做题而做题,那么做再多的题目也是没有作用的。而如果把基础打扎实的,看到题目能立马辨识出是哪种类型的题目,这种类型的题目该用什么方法和技巧能立刻自动反应,你在刷题的时候能带动训练和应用做题技巧和方法,以及基础知识点的回顾,这个时候做题才成体现出意义和价值,如此反复训练,上了考场自然能够秒杀,自然能够提高做题速度,而正确率又不会因为你的速度受到影响。把做题能力变成一种本能的反应,在考场上这才是真正意义上的凭借“感觉”做题。
第二个阶段,进行模块练习,这是对第一个阶段的查缺补漏,同时也是对自身有个客观了解的阶段,更加清楚了解自己的长短处,之所以要了解自己的长短处,是因为:第一,对于自己优势的模块要牢牢把握不能丢分数,另外还要加强这个模块的练习,压缩时间给短处的模块。第二,对于自己真心不会的题型能够在考场上面马上识别出来,然后一看到这种题型,直接跳过。很多人都在经验贴中提出要放弃,但是并没有人告诉你们要如何放弃,必须经历这个过程,你才知道怎样放弃,如果你没有掌握这个技能,往往在考场上你花了一分钟才发现这是你不会的题目,那么这个时候你再放弃已然没有任何的意义。第三,对整个考试才会有一个整体的格局感,那些真正裸考的人是不可能做到有格局感的,而裸考真正能上岸的一万个里面很难找到一个,格局感让你能对整个考试有个全局的掌控,如果考场上突然哪个模块出题非常难了,你可以进行全局的调整,就像我考这次,言语理解阅读量增加了(从2017年起国考增加了篇章阅读),那些没有格局感的人做了一个小时的言语理解,那么整个做题的计划就完全乱了。那些说裸考上岸的,请万万不要相信他们的谎言,他们不过是为了证明自己很厉害,装作没有努力,靠天资聪颖就考上了,其实都是谎言!
第三个阶段,开始整套题的进行训练。各个模块研究透了之后就是将这些模块组合起来,找到整体的感觉以及各个模块的做题顺序。对近5年的真题反复做5遍以上。每次做题的方法和顺序都可以有所调整,不断尝试,直到找到最适合自己的方法和技巧。这个阶段你会明显感觉到自己有质的飞跃,而前提是前面两个阶段都打好基础了。对套题进行训练的时候,要开始严格把控时间,提高做题速度,这个阶段求速度才显得有意义,也才有现实的可能性。刚开始可能速度提起来有点困难,自己会有几天不太适应,但是习惯了就好了。这个阶段自己会有一些窃喜。
第四个阶段,做全真的模拟训练。这个阶段是根据市面上的一些模拟试卷,进行找做题的感觉,因为真题做过几次之后会很有熟悉感,所以在考前2周可以做一些模拟题,第一,这为了上考场的时候不会因为一看题目好陌生而慌乱阵脚,第二,有些热门的预测具有一定的参考性,尤其是常识的预测和申论热点的预测,有时候是可以贴近的,特别是大作文,通过预测卷去着重背诵一些热点话题的素材是很有必要的。
具体的每个阶段的学习任务和时间的安排因人而异,在此,我以今天写此文的时间来做一个简单的规划,供大家参考和借鉴。第一个阶段,8月初到9月中旬,为期40天;第二个阶段,9月中旬到10月中旬,为期30天;第三个阶段,10月中旬到11月中旬,为期30天;第四个阶段,11月中旬到考试(预测11月25号,2018年是12月10日考试),为期15天。各个阶段的任务安排大家可以根据自己的情况来设定,但是大部分该复习的知识点我想还是必须要复习的。如果大家希望我在这方面多提供一些建议的话,那么可以在告诉我,点点赞同,或者在评论区里表达下需求,如果确实很多人都需要的话,那么我后期抽空对这方面的进行全面的扩充。

一、复习阶段
笔试根据复习内容和复习进度可分为以下几个部分:模块复习阶段、刷题练习阶段、反复巩固阶段、总结提升阶段。
行测可分为常识、言语、数量、逻辑、资料等模块,申论可分为单层次题目、多层次题目、多层次格式题目、大作文等模块。我们复习的方法主要是观看模块视频、练习真题、总结错题等方法,我们所谓的复习阶段就是指针对上述模块,侧重于某一种复习方法的一个阶段。特别注意,第一节仅将宏观复习思路,行测与申论的具体复习方法见第二节、第三节。复习阶段具体操作方法如下:
模块复习阶段:根据模拟的二至三套真题,找到自己的薄弱模块,查找专门的教学视频,进行有针对性的学习,夯实基础知识。与此同时,穿插做套题真题。对于行测,可以一周做一套真题,剩余的时间全部用来看模块教学视频。对于申论,可以一周做两道小题,剩余时间看模块教学视频。所以,模块复习阶段并不是只看模块视频,而是绝大多数时间看模块视频,同时辅以模拟练习。
刷题练习阶段:在夯实基础之后,我们需要练习来巩固基础知识。对于行测,刷题的原则是多而深,即尽量做更多的真题,同时将每一道题背后所蕴含的知识点挖掘清楚,目标是熟悉基础知识在所有变化下的使用技巧;对于申论,刷题的原则是少而精,即不必追求过多的题目,做一道就要将材料中所有句子的层次琢磨透彻,题目要求把握清楚,目标是在未来遇到相同或者类似的题目时,能够分析全面。当然,这个阶段绝大多数时间以真题练习为主,在遇到个别记不清楚的基础知识,翻看基础视频。
反复巩固阶段:这个阶段实际上是二刷甚至三刷基础视频。在一定量的基础训练之后,往往对于自己的实力有了清楚的判断,能够知道较为薄弱的环节,这时需要有针对性的再看一遍视频,查缺补漏。特别注意,这遍视频切不可跳看,要一点点细细琢磨,一方面,是为了学习薄弱的环节;另一方面,是为了查看是否有遗漏的知识要点。你会发现,每看一遍视频,都会有崭新的收获。这里我分享一个小故事,有的同学看我出品录制的视频时有一个疑问“夕川师傅,为何你的视频2倍速度播放时,声音与画面不同步?”我在遇到这个问题时,头脑里出现了黑人问号图片,我要求的是大家一个视频看两遍,不是两倍速度看一遍!
总结提升阶段:这是复习的最后一个阶段,经过了前面的复习,大伙有了一定的基础,也记了各种各样的笔记。在此,你需要抛开以往的笔记,采用回忆的方式,将所有模块的知识点从头到尾认真串联,形成做题的思维逻辑导图,将老师的思路幻化为自己的做题步骤。同时,可以翻开以往做过的卷子,用新的思维逻辑再做一次。经历了这一步,大家的复习才是完整的。
夕川也是用上面的四个阶段复习的,现在原原本本的教给大家。下面解决另一个问题,每个步骤用多长时间!
二、时间安排
有的小伙伴总会问:“我还有四个月考试,现在学是不是太早了?”我真的想和这样的小伙伴说,四个月已经有些不够了,还是早点复习吧。当然,可能有的小伙伴在剩余两个月或者一个月时才看到这篇文章。所以,我下面将分别说一下长期复习与短期复习两种情况下,如何安排四个阶段的复习时间。
如果时间大于4个月(大于120天),可完整的按照四个阶段来复习。第一阶段时间为40天,第二阶段时间为60天,第三阶段时间为10天,第四阶段为10天。如果时间更长,则可以将第一阶段延长至50天,第三阶段延长至20天,第四阶段延长至15天,剩余全部时间放在第二阶段的复习中。
如果时间为3个月左右(60天至120天),则可按照3:5:1:1的时间来分割。例如100天,则第一阶段为30天,第二阶段为50天,第三阶段为10天,第四阶段为10天。
如果时间少于两个月(小于60天),则只能完成第一阶段、第二阶段和第四阶段,时间比例为3:6:1。例如有60天,则第一阶段为18天,第二阶段为36天,第三阶段为6天。
小伙伴们能够对照自己的时间按照上面的比例合理安排复习。
四、复习资料
大家可以准备三类材料,包括各个模块的视频讲解、考试真题、机构参考答案。
各模块的推荐视频在第二节及第三节中会详细给出。这里我说一下选择基础知识讲解资料的基本原则。原则一,视频必须应试。咱们要面对的是考试,不是去研究行测或者申论,因此资料必须简短精炼,直戳考试要点。所以咱们不要选择某图某公某笔的教材,这种教材的确有一些知识点是有用的,但是有过多冗杂的信息,往往看过一遍之后无法提取有用的信息,只会白白浪费时间。原则二,关注老师信息。现在有太多的机构,选择一些假老师讲课,假的是这些老师自己都没有参加过公务员考试,没有上岸,仅仅是学过一段时间公考,就给大伙讲课。这些老师讲解的出发点是让人信服,有理有据,他们的思维是从分析答案出发。但是同学们考试是不知道正确答案的,一定要从题干出发。所以,假老师是逆向思路,同学考试是正向思路,出发点存在着巨大的差别,其结果就是所学的知识无法应用于考试之中。原则三,务必试听。大家学任何课程都要有自己的判断,切勿盲目学习。可以试听公开课或者小班课,如果觉得好,那我们就要反复多遍学习!
对于考试真题,我建议购买某公、某图的纸质版真题套卷,关键点是“纸质”、“真题”、“套卷”。大家切勿在某笔APP上面刷专项,首先是因为电子版与纸质版差距过大,做题习惯也完全不相同,练久了会影响考试感觉。其次是因为专项模块往往汇集了不同省份的真题,每个省的卷子题目思路、难度、时间、长短皆不相同,将这些乱七八糟的题目凑到一起没有意义,且考试是各个模块的有机统一,模块无法模拟整套卷子之间思路的转换和时间的控制,还有试想一下以后抓套卷偶尔遇到刷过的题目,是一件多么恶心的事情。
最后,大伙要多准备几个机构的答案。主要包含某公、某图的纸质答案和某笔的电子版答案。对于行测,是查看不同机构的解释;对于申论,是查看不同机构答案查找要点的不同,查缺补漏。
五、行测与申论的平衡
复习公务员考试,行测与申论必须齐头并进。失行测者失公考,得申论者得公考。不管你认同不认同,行测是公考的基础,但是行测无法让你与对手甩开差距。而申论则不同,所有上岸的考生大多都是申论分高。这不是因为申论难学,而是很多人忽视申论。你付出3个月时间冲击行测,未必能提高5分,但是申论却能提高15分。所以,多宠幸一下申论吧。
综合申论与行测,所有模块的学习效果和性价比如下:申论小题>行测逻辑>行测资料>申论大作文总分论点>行测言语>行测数量>行测常识。

古语有云:国有国法、家有家规。没有规矩、不成方圆。
兹武晨光、刘明宇、武气气(小名)及后续家庭成员于2019年7月17日在浙江省杭州市西湖区莲花街道荷花苑29楼501订下家规如下:

  1. 工作/学习需端坐在书桌/课桌前,不允许在床上工作/学习。临时工作/学习应限于10分钟之内。
  2. 吃饭的时候不允许玩手机。临时紧急工作消息或电话应在10分钟内处理完毕。
  3. 条件允许的情况下,必须前往餐桌就餐。
  4. 原则上不允许浪费,但应在肠胃允许条件下。
  5. 情绪低落时亦应准时准量吃饭。零食不计入吃饭范畴。
  6. 吃完饭收拾并清洗自己餐具。鉴于刘明宇皮肤较为敏感,不列入清洗餐具人员名单。
  7. 交流沟通时不允许无视对方,不允许用“嗯”,“哦”,“好的”,“等会儿”之类的回应。确实有事在忙的话,应说明多久之后回应。
  8. 空调温度应设定在26℃以上。
    以上条款及未来附加或修正条款即可生效。

2019/7/17
武晨光、刘明宇
9. 双方玩游戏时,若有一方要求停止,需立即停止。

jupyter-notebook方式启动notebook时,会调用~/.jupyter/jupyter_notebook_config.py. 但通过root --notebook启动notebook时,则不会自动找到该路径。需要把配置文件拷到当前目录,随后执行root --notebook命令。

ssh 端口转发/隧道代理

隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。

SSH隧道的类型

ssh隧道有3种类型:

  • 动态端口转发(Socks 代理)
  • 本地端口转发
  • 远端端口转发
  • 动态端口转发
    动态端口允许通过配置一个本地端口,把通过隧道到数据转发到远端的所有地址。本地的应用程序需要使用Socks协议与本地端口通讯。此时SSH充当Socks代理服务器的角色。

    命令格式

    ssh -D [bind_address:]port

    参数说明

  • bind_address 指定绑定的IP地址,默认情况会绑定在本地的回环地址(即127.0.0.1),如果空值或者为*会绑定本地所有的IP地址,如果希望绑定的端口仅供本机使用,可以指定为localhost。
    port 指定本地绑定的端口

    使用场景

    假设X网络(192.168.18.0/24)有主机A(192.168.18.100),Y网络(192.168.2.0/24)有主机B(192.168.2.100)和主机C(192.168.2.101),已知主机A可以连接主机B,但无法连接主机C。 在主机A执行
    ssh -D localhost:8080 root@192.168.2.100
    然后主机A上的应用程序就可以通过
    SOCKS5 localhost:8080
    访问主机C上的服务。

    优点

    配置一个代理服务就可以访问远端机器和与其所在子网络的所有服务

    缺点

    应用程序需要额外配置SOCKS代理,若应用程序不支持代理配置则无法使用

    本地端口转发

    通过SSH隧道,将一个远端机器能够访问到的地址和端口,映射为一个本地的端口。
    命令格式
    ssh -L [bind_address:]port:host:hostport

    参数说明

  • bind_address 指定绑定的IP地址,默认情况会绑定在本地的回环地址(即127.0.0.1),如果空值或者为*会绑定本地所有的IP地址,如果希望绑定的端口仅供本机使用,可以指定为localhost。
  • port 指定本地绑定的端口
  • host 指定数据包转发目标地址的IP,如果目标主机和ssh server是同一台主机时该参数指定为localhost
  • host_port 指定数据包转发目标端口

    使用场景

    假设X网络(192.168.18.0/24)有主机A(192.168.18.100),Y网络(192.168.2.0/24)有主机B(192.168.2.100)和主机C(192.168.2.101),已知主机A可以连接主机B,但无法连接主机C。A主机需要访问C主机的VNC服务(5900端口)
    在A主机上建立本地转发端口5901
    ssh -L 5901:192.168.2.101:5900 root@192.168.2.100
    然后本地vnc客户端通过5901端口打开c主机的vnc服务
    open vnc://localhost:5901

    优点

    无需设置代理

    缺点

    每个服务都需要配置不同的端口转发

    远端端口转发

    远程端口转发用于某些单向阻隔的内网环境,比如说NAT,网络防火墙。在NAT设备之后的内网主机可以直接访问公网主机,但外网主机却无法访问内网主机的服务。如果内网主机向外网主机建立一个远程转发端口,就可以让外网主机通过该端口访问该内网主机的服务。可以把这个内网主机理解为“内应”和“开门者”。

    命令格式

    ssh -R [bind_address:]port:host:hostport

    参数说明

  • bind_address 指定绑定的IP地址,默认情况会绑定在本地的回环地址(即127.0.0.1),如果空值或者为*会绑定本地所有的IP地址,如果希望绑定的端口仅供本机使用,可以指定为localhost。
  • port 指定本地绑定的端口
  • host 指定数据包转发源地址的IP,如果源主机和ssh server是同一台主机时该参数指定为localhost
  • host_port 指定数据包转发源端口

    使用场景

    假设X网络(192.168.18.0/24)有主机A(192.168.18.100),Y网络(192.168.2.0/24)有主机B(192.168.2.100)和主机C(192.168.2.101),已知主机A可以通过SSH访问登录B主机,但反向直接连接被禁止,主机B和主机C可以相互访问。若主机C想访问主机A的VNC服务(5900端口)。
    ssh -R 5900:192.168.2.100:5901 root@192.168.2.100
    然后主机C连接主机B的5901端口
    open vnc://192.168.2.100:5901

    优点

    可以穿越防火墙和NAT设备

    缺点

    每个服务都需要配置不同的端口转发

    如何禁止端口转发

    设置ssh服务配置文件/etc/ssh/sshd_config
    AllowTcpForwarding no

    ssh 代理访问内网服务器

    hostA 为本机、hostB 为代理机、hostC为目标机。
    portA 为本机代理ssh端口、portB为跳板机ssh服务端口、portC为目标机ssh服务端口。
    userB 为hostB的账户、userC为目标机的账户。
  1. 修改本机(hostA)/etc/ssh/sshd_config文件 AllowTcpForwarding no -> AllowTcpForwarding yes,并重启ssh服务。
  2. 在本机(hostA)执行(一次) ssh -fNg -L [portA]:[hostC]:[portC] -p [portB][userB]@[hostB]
  3. 在本机运行ssh -Y -p [portA] userC@localhost
    既可以通过hostA来访问hostC,且支持x11.