威联通NAS折腾日记(5)-使用阿里云DDNS服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了威联通NAS折腾日记(5)-使用阿里云DDNS服务相关的知识,希望对你有一定的参考价值。

参考技术A 疫情期间一直在家,NAS基本上都是在家中使用。外网访问的问题就没怎么管它。这次要去北京一趟,外网访问就被提上了日程。由于我用的是电信的宽带,提前已经申请了公网ip,并且已经在阿里云上申请了自己的域名。当然你也可以使用威联通官方提供的myqnapcloud云服务,或者使用花生壳等内网穿透工具。

DDNS翻译过来就是动态域名服务,他将用户的动态IP地址映射到一个固定的域名解析服务商,用户每次链接网络的时候客户端会通过信息传递把该主机的动态ip地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

上面说的可能有些绕,实际上DDNS服务就是将用户的IP地址与固定的域名一一映射,即使用户ip变更,而DDNS服务也会随之将域名的解析变更为新的ip地址。再简单一点就是可以使用固定的域名来在外网找到你的电脑。

由于电信等提供的公网ip是动态变化的,通常一天或二天一换,如果想要固定的ip地址还需要交额外的费用。所以我们就需要建立DDNS服务来将域名与动态ip进行映射。

我们使用威联通提供的docker来部署DDNS服务,在威联通的ContainerStation中搜索aliddns找到chenhw2/aliyun-ddns-cli
这个容器。

在高级设置中的环境中设置以下参数:

然后运行该容器在控制台中看到以下内容,说明就映射成功了:

实际上这个容器的作用就是自动在阿里云控制后台生成了一个域名映射:

这个是自动完成的,并且会在ip地址变更的时候自动更新这条映射。

创建完成了DDNS服务以后,实际上还是无法在外网访问你的NAS,因为NAS是在光猫下的,其ip地址是192.168这样的内网地址,而我们访问域名实际上是将请求发送给了外网地址也可以理解为发送给了光猫。而光猫本身不能处理这条请求,所以会将该请求抛弃。这个时候就需要另一个知识点就是端口映射,我自己的网络拓扑如下:

可以看到我的网络是两层结构,因为光猫只有一个千兆Lan口,所以我在下面有添加了一个提供多个千兆Lan口的路由器。而光猫下只是接了这个路由器而已。

光猫的网关是192.168.1.1,而路由器连接在光猫上那么他的ip地址是192.168.1.3。
而在光猫下的端口映射如下:

端口映射的意义就是如果外网的某个端口得到了请求,光猫会不加处理的将请求发送给映射的局域网ip:端口上。例如我上面的虚拟服务名称为nas的端口映射的意思是:外网的5000端口得到了一个请求,光猫将请求发送给内网的192.168.1.3:5000(也就是中间的路由器上)。

这时候我们依然无法看到我们的NAS,这就需要中间路由器继续进行映射将从光猫得到的请求转发给nas:

以上就完成了映射。

你也可以看到上面的映射中有一个22端口的ssh映射,同理如果防火墙没有放行也连接。

本文的前提条件:

具体步骤:

威联通NAS配置1.18.1Minecraft服务器

参考:
威联通NAS使用Container搭建我的世界服务器,带网页管理面板
Ubuntu下怎么退出vim编辑器
我的世界MCSM面板搭建

关于威联通nas开mc服务器的网上教程甚少,写篇博客预防日后忘记

我的nas是TS-453Dmini,4核8G内存

前置准备:

  1. 有公网IP(没有公网IP需要内网穿透,会增加延迟)
  2. 光猫改桥接模式,路由器可以实现端口映射

正文

Minecraft服务器的本质就是用一台电脑持续运行服务端,所以我们的处理思路就是在nas中开一个虚拟机一直运行服务端。刚好可以用威联通的Container Station这个APP提供的容器,直接在商城搜索即可

因为Linux内核的操作系统比windows性能更好,所以这里用Ubuntu 18.04。打开Container Station,点击右侧的创建,直接搜索ubuntu找到对应版本的映像安装即可


安装之前可以先自己建两个文件夹用于挂载数据,这里backup文件夹是我自己备份用的,不需要建,只需要建root和opt即可:

更改一下ubuntu的安装选项:

网络里:

我个人喜欢更改网络为桥接模式(bridge),如果选择NAT模式需要自己映射一下端口,相关端口有:

23333:web页面的端口
25565:服务器进入的端口


共享文件夹:

更改一下挂载的路径

其他设置根据自己的需求更改即可,我都选择默认了

来到虚拟机页面,点击终端机,输入 su 进入管理员模式


因为默认的国外下载源很慢,这里先更换一下中科大的下载源:

# 换源(中科大)
sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt-get update


然后就是Container Station开ubuntu的通病了,vi用不了,所以把原来的vi卸掉重装一遍

#卸载并重新安装vi(解决方向键乱码问题)
apt-get remove vim-common
apt-get install vim

中途让输入y/n,输一下y再回车就行了

然后安装java环境,这里以1.18.1为例,需要用到jdk17,我选择从官网下载:

# 安装wget
apt-get install wget
# 安装java环境:
cd ~
# 下载JDK安装包
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
# 创建安装目录
mkdir /usr/local/java/
# 解压当前目录下的JDK压缩文件
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java/

然后需要手动配置一下环境变量

# 设置环境变量
vi /etc/profile

在末尾添加对应变量:
滚动光标到末尾 按下 键盘上的 i 键,切换至插入模式
输入下面这几串内容后 按ESC退出插入模式
然后按下 Shift + ; 接着输入 wq 并回车保存

export JAVA_HOME=/usr/local/java/jdk-17.0.2
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 应用修改后的环境变量
source /etc/profile
# 软链接程序到环境变量中
ln -s /usr/local/java/jdk1.8.0_261/bin/java /usr/bin/java

以上jdk就安装完毕了,检查一下是否正常,如果和下图一样可以正常显示就是安装成功了

# 测试是否安装正常,显示 java version "17.0.2" 则为正常
java -version


然后安装Minecraft服务端管理面板,这里选择mcsm

#安装mcsm(管理面板)
apt install screen
apt install git
# 切换到安装目录
cd /opt/
# 下载运行环境
wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.gz
# 解压文件
tar -zxvf node-v12.16.1-linux-x64.tar.gz
# 链接程序到环境变量中
ln -s /opt/node-v12.16.1-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-v12.16.1-linux-x64/bin/npm /usr/bin/npm
# 克隆仓库
git clone https://gitee.com/Suwingser/MCSManager.git

因为我们需要让服务端持续运行,但终端在我们关闭后就会自动关闭,所以我们可以利用screen完成我们的需求,下面让服务端在screen中运行即可:

# 进入目录
cd MCSManager/
# 创建一个名为 mcsm 的窗口
# 在此新终端窗口内启动面板
screen -S mcsm
# 安装依赖库
npm install
# 启动面板
npm start 
# 关闭面板使用 Ctrl+C 快捷键即可

出现这个画面就是开启成功了

web端的 IP 就是我刚才设置的 192.168.2.6,端口号是 23333,直接浏览器里输入http://192.168.2.6:23333 就可以看到登录界面了,账号和密码分别是 #master 和 123456

如果上面Container Station里网络设置的是 NAT ,那么 IP 是你 nas 的 IP,端口就是你映射的端口了

登录后的页面

然后就可以愉快的开服了,这里以最简单的原版纯净服为例,点击服务端管理

在点击创建新实例应用


选择引导创建

把官方的服务端,也就是.jar文件上传就可以了,其他配置都默认


创建成功后依次点击终端开启,就开好服啦



一些默认配置可以到 server.properties 中更改,这里不多赘述了,开启服务器后服务端的终端大概显示这样:

此时服务器的 IP 和上文提到的一样,端口改为了 25565 ,只不过在mc客户端中只需要输入 IP 他默认访问的就是 25565 这个端口

然后在路由器上将端口映射一下,就可以直接通过你家的公网 IP 进入游戏啦


写在后面

在自己摸索的过程中,看到有很多人的过程中都需要处理ssh连接或FTP连接,但实际操作过程中,感觉这个过程可有可无,所以干脆阉割掉了。不知道是稳定性还是一些其他方面会受到影响,有大牛可以指点一下,或者日后再踩坑了会回来补充。

以上是关于威联通NAS折腾日记(5)-使用阿里云DDNS服务的主要内容,如果未能解决你的问题,请参考以下文章

威联通NAS配置1.18.1Minecraft服务器

威联通NAS配置1.18.1Minecraft服务器

威联通NAS配置1.18.1Minecraft服务器

威联通怎么样,我们有一台威联通nas,上周五坏谁会弄?

威联通NAS通过宝塔面板实现域名统一端口访问

威联通NAS通过宝塔面板实现域名统一端口访问