通过 nginx 简易实现内网穿透

原文链接:https://blog.zhuliang.ltd/2019/05/nginx/nginx-nat.html

转载请注明出处。

当开始进行小程序开发的时候,https是绕不过的一道环节,除了微信提供的ssl 服务器架设方案,还有花生壳内网穿透服务,自行在内网架设DNS服务器等方案。而本文所要讲解的,是通过外网nginx服务器反向代理来实现内网穿透。

前置条件:

1.路由器需支持端口转发。

2.需有公网IP,固定不固定无所谓。

3.在公有云上架设nginx(本文使用阿里云ECS通过linux搭建nginx),通过反向代理实现内网穿透。

在路由器上设置端口转发

这里以TP-LINK:TL-R473G为例。

TP-LINK的端口转发在【高级功能】--【虚拟服务器】选项卡下,具体如下:

image

注意事项

  1. 在使用端口转发的时候,尽量不要用XXX0(如8000,8080端口)端口,有不小概率会有冲突(如路由器内部保留端口可能会跟实际设定的端口有冲突)。改为使用8001,8081这样子。
  2. TL-R473G默认占用了8080端口作为认证服务端口(且自行修改后依然无效,目前猜测是固件问题导致,时间问题,就自我先规避该端口了)
  3. 确保防火墙(路由器,服务器)已经允许设定的端口,可以通过手机(4G网络下),直接根据“IP:端口”的形式来测试是否对外暴露成功。
    • 不要在同一局域网内进行测试,不少路由器和光猫回源有问题,尤其是电信的光猫,让师傅上门过几次,都表示无解,无法设定,硬件上做限制了。

配置:

在linux服务器上新建一个内网穿透配置文件,专门用于设定公司内部网络的穿透配置。

以下配置文件为简易配置,对于有其他具体需求的,请自行增加nginx相关设定参数。

http 80端口映射

配置文件:

upstream pre_xxx_api {
        server 111.222.333.444:8081; #设定具体的公司公网ip跟对应端口转发的端口号
}

server {
        listen 80;
        server_name pre-xxx-api.XXYY.com;
        location / {
                index index.html index.htm;
                proxy_pass http://pre_xxx_api/;
        }
}
  • wq保存退出-->nginx -t -->nginx -s reload-->查看结果

https 443端口映射

关于SSL证书,我这边是直接在阿里云购买的域名,可以直接在控制台申请免费的SSL证书以及自动关联设定SSL解析。(但阿里提供的免费证书,在chrome上不会显示绿色安全标---赛门铁克的锅,介意的可以直接到腾讯云上申请免费证书),这里非本文重点,仅略说明。

准备工作:

  1. 将申请的SSL证书文件,如pem/crt以及key上传到linux服务器上(注意相关目录和文件给好权限,测试用直接给777即可)

  2. 域名解析,将相关域名解析到 nginx所在服务器的ip上。

配置文件:

upstream pre_ssl_api {
        server 111.222.333.444:8081;
}

server {
        listen 443 ssl; # 这里很重要,网上资料复制粘贴太严重了,在设定https的时候,listen端口的时候,务必在443后面加上"ssl",否则chrome会报"ERR_SSL_PROTOCOL_ERROR"的错误
        server_name pre-ssl-api.XXYY.com;
        ssl_certificate      /usr/local/etc/nginx/ssl-key/XXX.pem;
        ssl_certificate_key  /usr/local/etc/nginx/ssl-key/YYY.key;
        ssl_session_timeout 5m;
        ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;

        location / {
                index index.html index.htm;
                proxy_pass http://pre_ssl_api/;
        }
}
  • wq保存退出-->nginx -t -->nginx -s reload-->查看结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容