avatar

Catalog
2019-06-11-使用SSH搭建代理及端口转发

使用SSH搭建代理及端口转发


layout: post
title: 使用SSH搭建代理及端口转发
subtitle:
date: 2019-06-11
author: Island
categories:

  • 工具学习
    tags:
    • 环境配置
    • 代理
    • ssh

搭建代理

以下操作皆在本地win下完成

  • 开启端口转发

    ssh -N -D 127.0.0.1:<local_port> root@<server_ip> -p <server_ssh_port>

  • 在chrome中下载Proxy switchyOmega,新建一个配置socks5代理位本地ip加端口,如下:

    首先添加一个ss直接代理:

    1560328699626

    再按如下图添加一个自动切换模式:

    附上规则列表链接https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

    1560415385308

配置完成,需要操作时在chrome切换到对应模式即可

将内网端口投送至外网

现在假定机器A为内网机器,B为有公网ip的机器。

  • 在内网机器A中执行以下命令:

    sudo apt-get install autossh

    autossh -M 5678 -NCR <port_1>:localhost:22 root@<server_ip> -p <server_ssh_port>

    其中 <port_1>为B机器中一个空闲端口,执行完这句命令便将A机器的22端口投送在B机器的上。另外,我这里使用了autossh是为了保证ssh连接的可靠性。

    执行完这个命令后,在B机器上ssh连接其端口以及可以正常连接,但是要在别的机器上连接还不行,还需要将这个端口再转发到B机器上另外一个端口才可以

  • 在公网机器B中执行以下命令:

    ssh -fCNL *:<port_2>:localhost:<port_1> localhost -p <server_ssh_port>

    执行完本命令后,便可使用ssh连接B机器的端口进而来连接A机器的22端口。

  • 如果要做成开启启动,可将以上脚本添加至/etc/rc.local脚本中。另外不止22端口,任意端口的投送应该都是可以的。


Comment