有两台服务器,都不是固定IP,考虑DDNS+非标端口实现异地挂载。
目前优先考虑两种方案:
一、sshfs:
安装sshfs
sudo apt-get install sshfs
创建一个本地目录用于挂载SSH隧道中的分区:
mkdir /mnt/sshfs
然后使用以下命令挂载SSH隧道中的分区到本地目录,并指定SSH端口号为xxx:
sshfs -p xxx user@remote_host:/remote_directory /mnt/sshfs
其中,-p xxx 参数用于指定SSH连接的端口号,user是远程主机的用户名,remote_host是远程主机的IP地址或域名,/remote_directory是远程主机上要挂载的目录。
输入远程主机的密码后,就可以将远程主机上的分区挂载到本地目录中了。挂载完成后,可以通过本地目录访问远程主机上的文件和目录。
要卸载挂载的分区,可以使用以下命令:
fusermount -u /mnt/sshfs
这样就可以在Linux上挂载SSH隧道中的分区,并指定SSH端口号为xxx了。
二、NFS:
这里有个误会,之前有人说NFS只能内网或者固定IP挂载,因为NFS设计之处没考虑过安全性,所以简易内网,而且不能用域名替代IP地址;
这两点前者说的不错,但也没想象中那么差,后者么,其实NFS可以用动态域名做地址啦。
在NFS中,通常情况下是使用标准的NFS端口(默认为2049)来进行挂载,而不是使用动态域名服务器的端口。然而,如果你需要在NFS客户端上挂载动态域名服务器的分区,并且服务器端口不是标准的NFS端口,你可以使用以下命令来指定端口:
sudo mount -t nfs -o port=xxx dynamicdomain:/remote_directory /mnt/local_directory
在这个命令中,-o选项用来指定挂载选项,port=xxx表示指定端口号为xxx。dynamicdomain是你的动态域名,/remote_directory是服务器上要共享的目录,/mnt/local_directory是你本地用来挂载远程目录的本地目录。
这样,NFS客户端就可以使用动态域名dynamicdomain来访问服务器上的共享目录,并且指定了端口号为xxx。确保你的动态域名服务能够及时地更新服务器IP地址和端口号是非常重要的,以避免客户端无法访问共享的情况发生。
需要注意的是,使用非标准端口可能会引入一些额外的配置和管理复杂性,因为需要确保服务器端和客户端都正确地配置了相应的端口。
除了NFS和SSHFS,还有其他一些方案可以使用动态域名和非标准端口来实现挂载远程硬盘的需求。以下是一些常见的解决方案:
- Samba/CIFS:Samba是一种用于在不同操作系统之间共享文件和打印机的协议,它可以在Windows、Linux和其他操作系统中实现文件共享。你可以使用Samba客户端来挂载远程Samba共享,而且Samba也支持使用动态域名和非标准端口。
- WebDAV:WebDAV是一种基于HTTP协议的文件共享协议,它可以在互联网上实现文件的读写操作。你可以使用WebDAV客户端来挂载远程WebDAV共享,同样也支持使用动态域名和非标准端口。
- FTP/SFTP:FTP和SFTP是用于在网络上传输文件的协议,你可以使用FTP或SFTP客户端来连接远程FTP/SFTP服务器,并进行文件的上传和下载。这两种协议也支持使用动态域名和非标准端口。
- iSCSI:iSCSI是一种用于在IP网络上传输SCSI命令的协议,它可以在远程服务器上挂载磁盘并将其视为本地磁盘。iSCSI也支持使用动态域名和非标准端口。
这些方案都可以通过配置动态域名和非标准端口来实现在异地网络上挂载远程硬盘的需求。在选择合适的方案时,你需要考虑网络环境、安全性、性能和易用性等因素。