ssh内 穿透并搭建SFTP服务器

SFTP是SSH File Transfer Protocol的缩写,安全文件传送协议。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至服务器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口 默认是22)来完成相应的连接和答复操作。

  • 链接方式:FTP使用TCP端口21上的控制连接建立连接。而,SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
  • 安全性:SFTP使用加密传输认证信息和传输的数据,所以使用SFTP相对于FTP是非常安全。
  • 效率:SFTP这种传输方式使用了加密解密技术,所以传输效率比普通的FTP要低得多。
  • 1,搭建环境

    1)A端:在内 搭建SFTP服务器;内 环境:ubuntu 16.04/18.04

    2)B端:在公 服务器上建立内 服务器的代理;公 服务器为阿里云服务器:ubuntu 16.04/18.04

    3)C端:在其他内 或公 设备上访问SFTP服务器

    2,内 服务器配置

    1)安装ssh服务器

    #更新源sudo apt-get update#安装ssh服务器sudo apt-get install openssh-server# 开机自动启动ssh命令sudo systemctl enable ssh# 单次开启sshsudo systemctl start ssh

    2)建立反向代理

    内 服务器的22端口和公 服务器的50000端口建立ssh连接

    ssh -fCNR 50000:localhost:22 -o ServerAliveInterval=60 usr@88.88.88.88 -p 22

    usr@88.88.88.88用自己的公 IP和用户名代替!

    解释(例子):

    该命令实现的功能是,让一个远端机器的50000端口代理自己的22端口,这里所说的远端机器就是我们的公 服务器。执行如下命令查看是否启用该进程

    ps aux | grep ssh

    3,公 服务器配置

    1)查看是否成功建立连接

    netstat -antpul | grep 50000

    此时,在公 服务器上测试连接下sftp服务器(usr用自己用户名代替

    sftp -P 50000 usr@127.0.0.1

    此时,也可以登录内 服务器

    ssh usr@localhost -p 50000

    2)正向代理

    前面实现的反向代理端口50000,但这个端口只允许公 服务器内部访问。也就是说,只能先用ssh登录公 服务器,然后在终端上使用ssh访问50000端口才能真正登录到内 服务器。需要继续配置,才能实现任意第三方的访问。

    公 服务器:让50010代理50000

    ssh -fCNL *:50010:localhost:50000 -o ServerAliveInterval=60 usr@localhost -p 22

    解释(例子):

    该命令实现的功能是,让本机50010端口指向一个远端机器的50000端口,而这里的远端机器恰好就是公 服务器本身。这样就可以任何机器访问内 的sftp服务器了。

    3)代理进程开机启动

    在~/.bashrc中添加上述指令即可

    4)阿里云服务器的安全组配置

    由于公 使用了阿里云服务器,所以要在安全组中开放22、50000、50010端口,其他云服务器也类似操作即可。

    5)用sftp客户端访问服务器

    通过以上操作,即实现了内 穿透,且可以从外 直接访问内 的sftp服务器了。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年2月21日
    下一篇 2022年2月21日

    相关推荐