内网和外网IP不同所以总有一个不好使?我是这样解决的

在家里搞了一个seafile服务器,路由器上设置了端口映射。
在外面的时候,服务器IP是家里的公网IP,回到家服务器IP是本地IP 192.168.1.200
来回更改客户端的账户信息很累人,然后我找到一个方法:

  1. 注册一个域名,我在华为云注册的,价格大约每年一包烟钱;
  2. 配置seafile客户端的时候URL直接填二级域名,二级域名的第一段你可以随便起个名字比如www;
  3. 路由器上把seafile服务器分配一个固定内网IP,比如192.168.1.200,如果路由器不支持这个功能(是的,已经2020年了,电信送的光猫还是不支持这个功能),可以在seafile服务器上设置静态IP,但是最后一个数字要在大一点,比如192.168.1.200,因为我的路由器给其他设配分配IP是从0开始的,数字小了容易IP冲突。如果你的路由器是从100开始分配,那你就用100以下的数字就不会冲突了。我这里设置为200的话,要有200个设备同时在线才有可能冲突,对于家庭来说这种情况不太可能出现;
  4. 在路由器上做端口映射的时候,跟seafile相关的内外网端口号要一致,比如我的的8001和8082,这两个端口电信都没封,直接映射到外网的8001和8082端口;
  5. 在华为云上把上面那个二级域名映射到两个IP上,一个公网IP,一个内网IP也就是192.168.1.200;
    这样一来不管是手机还是笔记本电脑,用域名登录客户端后,不需要我自己再理会内外网的事情,内网也有内网的速度,非常方便。

去绑个域名呗,内外网都用域名访问

1 个赞

聪明啊。

其实添加个代码,在客户端访问的时候,对本机IP加一个判断是内网还是公网就行了,好象没人做。

直接在路由器上,对你的域名做一个host即可。

我的解决方法是搭建一个内网dns,路由器首选内网dns,这样连上wifi就自动用内网dns转发的内网ip了

我的路由器是电信送的光猫,除了DMZ主机和端口映射,其他功能要么没有,要么我看不懂

  1. 猫桥接

  2. 下接路由器用现成的openwrt,编译现成的ddns脚本

  3. 用现成的域名解析到本地IP,做好静态内网IP+端口映射

打扰一下,我想问下最后一步在云上怎么映射两个ip给域名?反代吗还是ip解析到域名呢?因为我解析了内外网ip给域名之后,访问(包括ping)默认的是公网ip,还是不能自动分配。是不是路由器不支持 NAT Loopback 端口回流的原因?

通过本地 hosts 文件来解析域名也是可以的。

如何操作?