内网穿透&反向代理(重剑无锋)

介绍

由于前面内网穿透&反向代理(奇技淫巧)有一些局限性,所以继续研究内网穿透和反向代理的原理,把整个穿透和代理的过程算是捋清楚了。进而找到了最标准、稳定的解决方案。
这里采用frp+nginx来实现功能。

安装nginx

参考:
http://www.cnblogs.com/2bjiujiu/p/8117166.html
https://www.2cto.com/kf/201801/711202.html

  1. 安装nginx的依赖
    yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  2. 获取压缩包
    wget -q http://nginx.org/download/nginx-1.16.0.tar.gz
  3. 解压
    tar -zxvf nginx-1.16.0.tar.gz
  4. 配置和安装
cd nginx-1.16.0
./configure --prefix=/opt/nginx1.16.0
make
make install
ln  -sf  /opt/nginx1.16.0  /usr/local/nginx
echo 'export PATH=/usr/local/nginx/sbin:$PATH' >> /etc/profile && source /etc/profile
  1. 测试和启动
nginx -t # 显示successful
nginx # 启动
netstat -lntup | grep 80  # 检查
# 打开浏览器,访问 ip:80

nginx反向代理

参考:https://segmentfault.com/a/1190000016556569
nginx的反向代理是用一个端口监听另一个端口,比如这里已经开了一个80的默认nginx服务,我想让外面访问43005就相当于访问80端口。即43005代理了80。
这是个基本功能,直接修改 nginx/conf/nginx.conf就好:

# 在http下加上下面这些
# listen表示外网访问的端口
# server_name是本地被访问的ip
# proxy_pass是被代理的ip和端口
    server {
        listen       43005;
        server_name  localhost;
        location / {
            proxy_pass  http://localhost:80;
        }
    }

配置完后先测试 nginx -t
然后平滑重启 nginx -s reload
浏览器访问106.x.x.x:43005就会访问到80的服务

使用frp实现ssh穿透

参考:
https://github.com/fatedier/frp#access-your-computer-in-lan-by-ssh

# 下包 可以去https://github.com/fatedier/frp/releases下载最新版
wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz
# 解压
tar -zxvf frp_0.27.0_linux_amd64.tar.gz

  • 修改服务端 frps.ini
[common]
bind_port = 7000 # 监听的端口B

开启服务端./frps -c ./frps.ini

  • 修改客户端 frpc.ini
[common]
server_addr = x.x.x.x # 填写公网的server ip
server_port = 7000 #服务端监听的端口B

[ssh]
type = tcp
local_ip = 127.0.0.1 
local_port = 22 # 本地被监听的端口
remote_port = 43006 # 公网对外的访问端口

开启客户端./frpc -c ./frpc.ini

使用frp实现service穿透

  • 修改frps.ini# frps.ini
[common]
bind_port = 7000
vhost_http_port = 43005

Start服务端./frps -c ./frps.ini

  • 修改frpc.ini and . The local_port is the port of your web service:
[common]
server_addr = x.x.x.x # set remote frps server's IP as x.x.x.x
server_port = 7000 

[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com # 没有域名就用上面的server addr

开启frpc./frpc -c ./frpc.ini

  • 浏览器访问ip:43005.

其他配置可以参考:https://www.xyzbeta.com/460

frp实现ftp

修改frpc.ini

[test_static_file]
type = tcp
remote_port = 43762
plugin = static_file
plugin_local_path = /root/test # 设置路径
plugin_strip_prefix = static  #设置域名
plugin_http_user = user
plugin_http_passwd = pwd
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 群晖NAS+frp发挥更大作用Posted by SunnyRx on October 21, 2016原文地址:...
    热心人士阅读 159,100评论 19 97
  • 内网穿透 《微信本地调试》一文中,小编提到了使用ngrok、natapp和花生壳进行内网穿透。但是,想要使用自定义...
    VoidKing阅读 23,118评论 4 26
  • 最近没什么事情,看了一些关于内网穿透的文章,因我本身已是做微信开发相关的工作,对这部分关注的比较多,现分享给大家。...
    myair阅读 5,361评论 2 22
  • 心系八台,是很久的事了,一直无缘得见。不久前还偶然见得那一幅“八台云影”,将我的心撩拨的很远很高,不知为何让我见得...
    真事隐去阅读 591评论 2 15
  • 1、布兰琪为何一开始如此激烈地反对斯特里克兰到她家中养病,之后却又要跟斯特里克兰走。这样的反差对比,让人不解。作者...
    颖小白阅读 578评论 0 0