zoukankan      html  css  js  c++  java
  • 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 代理设置失效。

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

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

  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/ldld/p/10825689.html
Copyright © 2011-2022 走看看