美文网首页
SSH 内网穿透与反向代理

SSH 内网穿透与反向代理

作者: 龜山島 | 来源:发表于2017-11-04 10:25 被阅读0次

    环境

    内网主机archlinux系统,公网阿里云或者其它云主机一台。
    ## 内网也可以是openwrt OR lede固件的路由器,支持ssh就行。

    云主机配置

    # nano /etc/ssh/sshd_config
    

    去掉GatewayPorts前面的#号,并把no改成yes
    同时也去掉下面两项的#并修改

    TCPKeepAlive yes
    ClientAliveInterval 60     #60代表每一分钟查检一次客户端的连接情况
    ClientAliveCountMax 3      # 检查3次,客户端无响应则中断连接
    

    创建一个用于穿透的普通账号

    # useradd -m proxyuser    #不同系统创建用户的方法不同
    # passwd proxyuser
    

    重启sshd服务systemctl restart sshd

    内网archlinux主机配置

    安装autossh来运行穿透,防掉线

    $ sudo pacman -Suy
    $ sudo pacman -S autossh
    

    新建普通用户用于穿透

    $ sudo useradd -m autosshuser
    $ sudo passwd autosshuser
    

    创建SSH钥匙并上传到云主机

    $ su  - autosshuser
    $ ssh-keygen -t 'rsa' -b '4096' -C 'autosshuser@hostname'    //hostname填写当前主机名,注意该密钥不要设置密码,尽管一路回车,不要输入额外的字符。
    $ ssh-copy-id proxyuser@yunIP     //yunIP 可以是你的云主机IP或者域名
    

    运行autossh反向代理

    $ autossh -p 2222 -M 8181 -fCNR '*:8080:localhost:80' proxyuser@yunIP -i /home/autosshuser/.ssh/id_rsa
    

    -p 2222是指云主机的SSHD端口,默认是22,若有修改请指定。
    -M 参数指定的端口用来监听隧道的状态,与端口转发无关。
    -f 静默运行。
    -C 数据压缩,网速快不要加。
    -N 不执行任何指令。
    -R 使用远程端口转发。
    NR通常是共同使用。
    现在可以使用http://yunIP:8080来访问你本机的80端口了,*:8080:localhost:80 中的localhost:80 , 也要可以改成内网中其实的主机,如 192.168.1.1:80 ,就可以用http://yunIP:8080访问路由。

    以服务运行autossh
    $ sudo nano  /usr/lib/systemd/system/autossh.service
    

    添加内容

    [Unit]
    Description=Auto SSH Tunnel
    After=network.target
    
    [Service]
    User=autossh
    Type=simple
    ExecStart=/bin/autossh -p 2222 -M 8181 -fCNR '*:8080:localhost:80' proxyuser@yunIP -i /home/autosshuser/.ssh/id_rsa
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    注意不要照抄我的配置 ,里面的参数还需要你自己改,特别是yunIP/bin/autossh路径。

    加载和启动服务
    $ sudo systemctl daemon-reload
    $ sudo systemctl enable autossh
    $ sudo systemctl start autossh
    

    有问题请留言。

    相关文章

      网友评论

          本文标题:SSH 内网穿透与反向代理

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