平时开发过程中,可能会遇到一些网络问题,比如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 代理设置失效。

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

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

Linux实用技巧--隧道的更多相关文章

  1. 80%的人都不会的,15个Linux实用技巧

    熟悉 Linux 系统的同学都知道,它高效主要体现在命令行.通过命令行,可以将很多简单的命令,通过自由的组合,得到非常强大的功能. 命令行也就意味着可以自动化,自动化会使你的工作更高效,释放很多手工操 ...

  2. Linux实用技巧

    1. linux共享内存的查看和释放 查看共享内存命令:ipcs -m 删除共享内存明明:ipcrm -m [shmid] [negivup@negivup mycode]$ ipcs -m  查看共 ...

  3. linux实用技巧:在虚拟机vmware16软件上安装CentOs8.2虚拟机,重置可用源和安装输入法

    前言   开发服务器应用,需要使用到CentOs8.2,安装到虚拟机上方便快捷.   提前准备 Vmware 16虚拟机软件  下载VM16版本及以上的vmware虚拟机版本,否则没有CentOs8选 ...

  4. Vim 实用技术,第 1 部分: 实用技巧(转)

    原文链接:http://blog.jobbole.com/20604/ 0. Vim 简介 作为开源世界最重要的编辑器之一(另一个是 Emacs),Vim 以其强大的功能和可定制能力被众多开发者所喜爱 ...

  5. Mac实用技巧之:访达/Finder

    更多Mac实用技巧系列文章请访问我的博客:Mac实用技巧系列文章 Finder就相当于windows XP系统的『我的电脑』或win7/win10系统里的『计算机』(打开后叫资源管理器),find是查 ...

  6. Docker实用技巧之更改软件包源提升构建速度

    一.开篇 地球,中国,成都市,某小区的阳台上,一青年负手而立,闭目沉思,阵阵的凉风吹得他衣衫呼呼的飘.忽然,他抬起头,刹那间,睁开了双眼,好似一到精光射向星空,只见这夜空......一颗星星都没有.他 ...

  7. CentOS系统中的passwd命令实用技巧小结

    这篇文章主要介绍了Linux系统中的passwd命令实用技巧小结,是Linux入门学习中的基础知识,需要的朋友可以参考下   先来回顾一下passwd命令的基本用法: Linux passwd命令用来 ...

  8. Buildroot构建指南--快速上手与实用技巧

    Buildroot官方全英文使用手册的链接是https://buildroot.org/downloads/manual/manual.html,需要知道每一个细节的朋友,可以仔细查阅,这篇文章只是我 ...

  9. Buildroot构建指南--快速上手与实用技巧【转】

    本文转载自:http://blog.csdn.net/zhou_chenz/article/details/52335634 Buildroot官方全英文使用手册的链接是https://buildro ...

随机推荐

  1. CentOSLinux系统中Redis数据库的安装及配置

    MongoDB 传统方式安装 关闭 SELinux 编辑配置文件:vim /etc/selinux/config 把 SELINUX=enforcing 改为 SELINUX=disabled Mon ...

  2. [Markdown] 01 简单应用 第一弹

    目录 0. "调用函数前必先声明" 0.1 Table of Content 0.2 分割线 0.3 引用 0.4 标记 0.5 关于 html 0.6 代码块 用法 1 用法 2 ...

  3. jsp自定义标签处理转义字符

    sun公司提供的jstl虽然比较强大,但是开发中很难满足我们所有的需求,并且开发也禁止在jsp中写很多java代码,因此很多场景需要自己定义标签进行项目开发 sun提供的标签库引用方式:<%@t ...

  4. socket中TCP的三次握手连接和四次握手释放

    三次握手连接 A: 我进来了啊 B:(有人来了安排个位子)回复:好的你进来吧 A:好的: 客户端向服务器发送一个SYN J 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1 客户 ...

  5. SwiftUI 实战:从 0 到 1 研发一个 App

    心得感悟 起初看到 WWDC 上的演示 SwiftUI 时,我就觉得 SwiftUI 有种陌生的熟悉感(声明式语法),所以体验下,看看有没有什么启发. 先说下整体项目完成下来的感受: 用 Swift ...

  6. 【错误】mysql 出现 "1067 - Invalid default value for 'UPDATE_TIME' " 错误提示的解决办法

    今天工作中遇到修改表结构的时候出现错误 Invalid default value for 'UPDATE_TIME 问题原因是因为db 表中update_time的默认时间写成了 '0000-00- ...

  7. node npm vue.js 笔记

    cnpm 下载包的速度更快一些. 地址:http://npm.taobao.org/ 安装cnpm: npm install -g cnpm --registry=https://registry.n ...

  8. Linux系统Docker启动问题Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"

    在Liunx中使用Docker, 注: Liunx使用的是在虚拟机下的centOS7版本在刚开始安装Docker时没有任何错误, 但是在后续的docker启动过程中, 出现以下问题: [root@zk ...

  9. linux权限管理—基本权限

    目录 Linux权限管理-基本权限 一.权限的基本概述 二.权限修改命令chmod 三.基础权限设置案例 四.属主属组修改命令chown Linux权限管理-基本权限 一.权限的基本概述 1.什么是权 ...

  10. 【LeetCode】二分 binary_search(共58题)

    [4]Median of Two Sorted Arrays [29]Divide Two Integers [33]Search in Rotated Sorted Array [34]Find F ...