远程连接内网

方法1:使用frp

  1. 一台公网服务器(阿里云等)和一台内网服务器。
  2. 下载frp程序,地址:frps程序。 然后分别上传到公网服务器和内网服务器
  3. 公网服务器配置:解压软件包进入目录,编辑frps.ini文件,最简单配置如下:

    # frps.ini
    [common]
    bind_port = 7000
    

    启动frps:./frps -c ./frps.ini

  4. 内网服务器配置:修改frpc.ini(注意是frpc.ini不是frps.ini)如下:

    # frpc.ini
    [common]
    server_addr = x.x.x.x //公网服务器ip
    server_port = 7000
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    

    启动:./frpc -c ./frpc.ini(注意文件名不要错)

  5. 公网服务器设置frps服务自启动:sudo vim /lib/systemd/system/frps.service 然后输入如下内容:

    [Unit]
    Description=fraps service
    After=network.target syslog.target
    Wants=network.target
    [Service]
    Type=simple
    #启动服务的命令(此处写你的frps的实际安装目录)
    ExecStart=/your/path/frps -c /your/path/frps.ini
    [Install]
    WantedBy=multi-user.target
    

    然后就启动frps:sudo systemctl start frps然后打开自启动:sudo systemctl enable frps然后还可重启,停止,查看状态。具体可百度frp后台启动。

  6. 连接:ssh -oPort=xxxx xxx@公网ip
  7. vscode免密码所示连接: 任意地方打开git bash,若是没有执行过ssh-keygen命令则执行,一路回车就行,然后执行 ssh-copy-id -i /c/Users/fugan/.ssh/id_rsa.hub -oPort=xxx xxxx@ip即可。
  8. 可能出现的问题:
    • 内网服务器frpc连接失败:可能是公网服务器端口没有在安全规则里面(阿里云可以去控制台添加)或者可能是内网服务器没有连上外网或者可能是命令的文件名不对,自己检查一下
    • 更换机器后,出现[ssh] start error: proxy name [ssh] is already in use错误,只需修改frpc.ini中的ssh为其他名字即可。

方法2:Vscode配置跳板机

假设机器C是内网机器,B是跳板机,A连接C:

首先需保证B和C上有A的ssh key,没有添加上即可

然后打开Vscode的配置文件,输入如下内容:

Host B
  HostName B的公网ip
  User xxxx
  Port xxxx

Host C
  HostName C的内网ip
  User xxxx
  ProxyCommand ssh -W %h:%p B

然后连接即可

results matching ""

    No results matching ""