• Linux实用技巧--隧道


        平时开发过程中,可能会遇到一些网络问题,比如npm install 一些依赖包。本地电脑是可以,没有问题。但是测试环境服务器,由于公司内部网络安全限制,不可以随意访问外部网络。因此下载一个依赖包就变得很麻烦,需要你提网络访问权限,讲清楚原因。当然,你可以搭建一个私服,每天去同步npm包到你私有服务器。

       这里介绍一个小窍门,linux 隧道命令。

       介绍这个命令之前,需要有一个前提,那就是 本地环境能访问你的测试服务器。也就是说,你本地,到你部署的服务器网络至少单向是通路的。

       现在我们开始建一个隧道,来实现  测试服务器,通过本地服务器作为跳板,访问外部的npm 或者其他服务器。

      1、输入如下命令(以mac OS为例)

    ssh -R 8888:127.0.0.1:9999 root@10.x.x.x

    1. ssh -R 固定用法,R 表示 Right(明白这个以后,你可以推算ssh -L的用法)
    2. 第一个8888 表示监听10.x.x.x这个地址的8888端口
    3. 第二个127.0.0.1:9999 表示本地127.0.0.1的9999端口作为跳板
    4. root@10.x.x.x 表示用root用户登录你的测试服务器

     输入上述命令后,系统要提示你输入 10.x.x.x的root用户密码。密码验证通过后,第一步隧道建立成功。

    2、本地的9999端口要有服务占用才行。这里我用charles 抓包工具,监听本地9999端口。否则,本地9999都没有启用,没法作为跳板的。

    3、charles 要做相应的配置修改,也就是本场景下只做纯转发,不做https 抓包处理。(charles抓包的时候,会拦截数据包,https数据解密,然后用自己的证书处理后再转发出去。

       那么再npm 安装的时候发现该https的证书不是可信任的,而是charles自己的证书的时候,会引发一些问题)。

       如下图,我直接不勾选 Enable SSL Proxying,简单粗暴。

     4、在你测试服务器需要执行npm install 的地方,设置代理。刚才我们启动的测试服务器的8888端口。那么这个时候,所有的npm install 的请求都应该交给8888 端口去发起请求。

    export http_proxy=http://127.0.0.1:8888
    export https_proxy=http://127.0.0.1:8888
    

      

    继续设置代理的操作只在当前会话下有效,你关掉该ssh连接后,export 代理设置失效。

    经过上述步骤,就可以在内网的测试环境,以本地环境作为跳板,访问一些开源的网络。

    当然,这个只是一个临时解决方案,最重要的还是要跟公司的网络组协商,申请开通网络权限。

  • 相关阅读:
    [BZOJ1433][luogu_P2055][ZJOI2009]假期的宿舍
    [BZOJ1280][POJ1149]Emmy卖猪pigs
    [BZOJ1066][luogu_P2472][SCOI2007]蜥蜴
    [nowcoder_Wannafly挑战赛4_F]线路规划
    [SPOJ839]Optimal Marks
    [BZOJ1497][NOI2006]最大获利
    Django_orm脚本
    Function
    Class
    Python核心编程
  • 原文地址:https://www.cnblogs.com/ldld/p/10825689.html
Copyright © 2020-2023  润新知