美文网首页
云主机反向代理穿透内网(nginx + ssh隧道)

云主机反向代理穿透内网(nginx + ssh隧道)

作者: slords | 来源:发表于2019-12-22 23:07 被阅读0次

在搭建家庭私用服务时有一个问题不得不处理,那就是内网穿透。现在一般的家庭宽带并不提供固定IP地址,并不支持固定的IP地址访问,一般第一时间想到的是使用花生壳这类内网穿透的解决方法处理该问题。但是,免费套餐是限制流量使用的,且IP地址转发不稳定。正好趁减价的时候买了一台云主机,打算使用云主机做家庭服务的反向代理,做内网穿透使用。

整体结构

  • 云主机:
    云主机,IP地址下记<server_ip>,使用nginx作为反向代理的web服务器监听对外端口,下记为80,将请求转发ssh隧道监听的端口2222。

  • 家庭内网私有服务:
    建立ssh隧道连接,将请求接受并转发服务端口8080

云主机部署

  1. 安装nginx
# centos 7
yum install -y nginx
  1. 配置nginx
    在 /etc/nginx/conf.d/下随意创建一个 .conf后缀的配置文件,下记为proxy.conf,作为该反向代理的配置文件。该文件会在nginx的主配置文件 /etc/nginx/nginx.conf 中的下述代码段中引入。
    include /etc/nginx/conf.d/*.conf;

在proxy.conf文件中添加下述内容

server {
   listen 80; # 这里为对外访问端口
   server_name localhost;
   location /{
        # 转发时调整请求头信息
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header Connection "upgrade";
    
        # 转发至ssh 监听端口2222
        proxy_pass http://127.0.0.1:2222;
   }
}
  1. 加载nginx服务
# nginx配置开机启动
systemctl enable nginx

# nginx服务重启
systemctl restart nginx

# nginx服务重加载
systemctl reload nginx
  1. 添加账户,下记为proxyuser,用于SSH访问(不建议使用root直接访问SSH),并建议配置使用证书访问方便shell脚本直接启动。该段内容不是重点不做赘述。

家庭主机部署

  1. 添加启动脚本
# ssh -i SSH私钥证书 -R 反向端口转发 2222端口转发本地8080端口 
ssh -vnNt -i ~/.ssh/id_rsa -R 2222:localhost:8080 proxyuser@<server_ip> > sshproxy.log 2>&1 & 
  1. 添加ssh客户端连接配置信息防止sshl连接时间过长自动断开,修改 /etc/ssh/ssh_config 文件,添加下述内容。
# /etc/ssh/ssh_config
    ServerAliveInterval 60
    ServerAliveCountMax 86400

后重启SSH服务。

systemctl restart sshd

相关文章

  • 云主机反向代理穿透内网(nginx + ssh隧道)

    在搭建家庭私用服务时有一个问题不得不处理,那就是内网穿透。现在一般的家庭宽带并不提供固定IP地址,并不支持固定的I...

  • 搭建ssh反向隧道

    实现外网利用ssh反向隧道访问内网主机 准备 实现内网穿透都需要一台外网主机,而且是可以访问的 内网主机A IP:...

  • 利用反向代理实现内网的ssh连接

    内容实现了再补 参考文章:SSH如何反向代理稳定穿透内网利用ssh反向代理以及autossh实现从外网连接内网服务器

  • autossh实现内网穿透

    autossh作用实现内网穿透,之前用过ssh反向代理,但是ssh反向代理在网络不稳定的环境下面就会很麻烦,连接断...

  • SSH反向代理穿透内网

    需要反向转发和正向代理相结合 一、通过内网机器反向连接VPS 在需要访问的内网主机上执行 ssh -p 22 -q...

  • SSH反向隧道实现内网穿透

    一、前言 网络上有很多强大的内网穿透软件,但对于某些很简单的需求来说可以通过SSH来实现更为方便。 二、配置 配置...

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

    介绍 由于前面内网穿透&反向代理(奇技淫巧)有一些局限性,所以继续研究内网穿透和反向代理的原理,把整个穿透和代理的...

  • 内网穿透&反向代理(双管齐下)

    介绍 之前在内网穿透&反向代理(重剑无锋)中介绍了如何使用frp搭建ssh穿透和单一的web服务穿透。然而不止有一...

  • SSH 内网穿透与反向代理

    环境 内网主机archlinux系统,公网阿里云或者其它云主机一台。## 内网也可以是openwrt OR led...

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

网友评论

      本文标题:云主机反向代理穿透内网(nginx + ssh隧道)

      本文链接:https://www.haomeiwen.com/subject/lmlanctx.html