使用 NAT

最后更新于:2022-04-01 02:21:33

# 防火墙 / NAT 设置 通过广域网(WAN)访问部署在局域网(LAN)的 Seafile 服务器,需要: - 一台支持端口转发的路由器 - 使用动态域名解析服务 - 配置 Seafile 服务器 ### 安装 Seafile 服务器 首先,按照[部署 Seafile 服务器(使用 SQLite)](#)安装 Seafile 服务器。 并确保以下功能正常运行: - 正常访问 Seahub 网站 - 在 Seafile 客户端可以下载/同步一个资料库 ### 在路由器中设置端口转发 ### 确保路由器支持端口转发功能 首先, 确保你的路由器支持端口转发功能: - 根据路由器管理手册操作说明(或网络搜索), 进入路由器的管理用户界面。 - 找到包含 "转发" 或者 "高级" 等关键词的页面, 说明此路由器支持端口转发功能。 ### 设置路由转发规则 Seafile 服务器包含很多组件, 请根据以下规则为所有组件设置端口转发。 | 组件 | 默认端口 | |-----|-----| | ccnet | 10001 | | seaf-server | 12001 | | fileserver | 8082 | | seahub | 8000 | - 如果是在 Apache/Nginx 环境下部署的 Seafile, 则不需要打开 8000 和 8082 端口。 - 以上是默认端口设置,具体配置可自行更改. ### 端口转发测试 设置端口转发后,可按以下步骤测试是否成功: - 打开一个命令行终端 - 访问 `http://who.is` 得到本机的IP - 通过以下命令连接 Seahub ~~~ telnet 8000 ~~~ 如果端口转发配置成功,命令行会提示连接成功。否则, 会显示 *connection refused* 或者 *connection timeout*, 提示连接不成功。 若未成功,原因可能如下: - 端口转发配置错误 - 需要重启路由器 - 网络不可用 ### 设置 SERVICE_URL `ccnet.conf` 中的 "SERVICE_URL" 字段,是用来在在线访问文件时,生成上传/下载链接的,更改此字段的值为你的IP。 ~~~ SERVICE_URL = http://<Your WAN IP>:8000 ~~~ 大部分路由器都支持 NAT loopback. 当你通过内网访问 Seafile 时, 即时你的外部 IP 被占用,文件上传/下载仍然会工作。 ### 使用域名解析服务 ### 为什么使用动态域名解析服务? 完成以上端口转发配置工作后,就可以通过外网 IP 访问部署在局域网内的 Seafile 服务器了。但是对于大多数人来说, 外网 IP 会被 ISP (互联网服务提供商)定期更改, 这就使得,需要不断的进行重新配置. 可以使用动态域名解析服务来解决这个问题。通过使用域名解析服务,你可以通过域名(而不是 IP)来访问 Seahub,即使 IP 会不断变化,但是域名始终会指向当前 IP。 互联网上提供域名解析服务的有很多,我们推荐 [www.noip.com](http://www.noip.com)。 怎样使用域名解析服务,不在本手册说明范围之内,但是基本上,你需要遵循以下步骤: 1. 选择一个域名解析服务提供商。 1. 注册成为此服务商的一个用户。 ### 更改 Seafile 配置 当你配置好域名解析服务之后,需要对 `ccnet.conf` 进行更改: ~~~ SERVICE_URL = http://<你的域名>:8000 ~~~ 然后重新 Seafile 服务. ### 网络设置 默认情况下,你需要打开以下四个端口. ~~~ | | Seahub | 8000 |- | FileServer | 8082 |- | Ccnet Daemon | 10001 |- | Seafile Daemon | 12001 | ~~~ 如果你的 Seafile 服务器是运行在 Nginx/Apache 环境下,并且开启了 HTTPS, 则需要开启以下端口: ~~~ | | HTTPS | 443 |- | Ccnet Daemon | 10001 |- | Seafile Daemon | 12001 | ~~~
';