相信很多朋友选择seafile搭建私有云,而不使用免费的互联网云盘,如百度云、115网盘等,是为了数据安全、防止外泄等原因。
在内网部署好seafile服务器后,为了使用方便,在外可随时随地的享用私有云盘,那么将内网映射到公网的需求是非常必要的。
我在使用过程中发现官方给的映射方法非常有局限性,
1、做NAT的设备必须支持NAT loopback,将服务器SERVICE_URL和FILE_SERVER设置为公网IP,所有功能才能正常使用。
局限:其实不是所有支持NAT的设备都支持NAT LOOPBACK,遇到这种设备,这个方法不可以,我就遇到了。
2、互联网出口设备不支持NAT LOOPBACK的情况,自己注册XXX域名,将公网IP绑定到这个域名,把SERVICE_URL和FILE_SERVER的地址配置为域名,在内网搭建一台DNS服务器,将XXX域名解析到seafile服务器内网IP。内网的终端都使用内网DNS。这样内网和公网都能正常使用。
局限:必须有互联网域名,还要多一台内网DNS服务器。
其实有更好的解决办法,如果官方愿意对客户端做点小修改的话。
服务器SERVICE_URL设置为内网IP,FILE_SERVER设置为/seafile ,互联网出口按常规方法做NAT,就可以了,设备不需要支持NAT loopback。 内网访问使用内网IP,互联网访问使用公网IP。
我已这样测试过,WEB页面没问题。但是客户端上传、下载文件就有问题了。我猜应该是客户端程序里文件传输调用不到服务器地址,识别不了/seafile这个地址,如果调用的是登陆客户端时配置的服务地址+/seafile 就能正常使用了。
我现在测试过WEB能正常使用,安卓客户端和MAC客户端可正常登陆浏览目录,但是不能上传下载文件。
上传中…