logo

搭建家庭娱乐服务器和网站开发服务器历程

2025-02-05 点击 50

记录

一. 主机篇


1.1 DIY主机


京东选择带U主板.

需24Pin电源DC-ATX电源

可找服务器小电源

支持itx主板机箱

板子支持最大16G内存


1.2 购买品牌主机


英特尔® NUC


1.3 购买旧主机


准备接手朋友的小机器先用着.N3150


本着省心省事的原则,选择1.3方式,刚好有朋友要处理自用的主机.


二. 本地环境搭建


2.1 安装centos7


2.1.1下载镜像


从http://isoredirect.centos.org/centos/7/isos/下载镜像centos7.7

下载64位系统http://isoredirect.centos.org/centos/7/isos/x86_64/

阿里云镜像http://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/

下载DVD版CentOS-7-x86_64-DVD-1908.iso


2.1.2 安装U盘制作


使用UltraISO刻录到U盘


2.1.3安装系统


开机选择U盘启动,不同主板不同方式,具体可以网上查找方法或主板官网查找说明

U盘启动进入安装步骤

选择Install Centos 7,按e修改

将配置改为vmlinuz initrd=initrd.img inst.stage2=hd......quiet改为vmlinuz initrd=initrd.img linux dd quiet。

回车系统会进入磁盘设备列表,查看U盘的设备名。

记住设备名(sdb4),然后按ctrl + alt + del 重启,进入安装界面,按TAB编辑配置,改为vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet nomodeset

然后就可以顺利安装系统了.


这里安装系统有点曲折,刚开始下载了centos8的系统,半小时就安装好了.然后安装相关程序时遇到一些不兼容问题,就直接放弃,更换centos7系统了.


3.安装相关环境


3.1安装宝塔面板及web环境

安装宝塔面板见httPS://www.bt.cn/bbs/thread-19376-1-1.html

root登录系统选择安装命令

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh


然后就是修改默认的路径和web环境安装,我这里安装环境如下

Nginx 1.16.1

PHP-7.3

MySQL 5.7.27




3.2 安装nextcloud







3.3 配置FRP客户端






三. 关联环境搭建及使用


远程访问及管理



电视播放


手机播放




通过VPS中frp服务端实现内网穿透.域名访问nextcloud.

centos7中配置ssh,实现远程访问家用网络(可远程管理家里的设备)

Tunnelier连接ssh后设置转发,可以访问家用路由器和电脑.

centos7中搭建Aria2下载工具,实现离线下载。

nextcloud中安装ocDownloader插件,管理并使用Aria2实现离线下载.



手机安装nextcloud客户端,配置自动备份图片视频

电视安装KODI,配置webdav(来自nextcloud)

电视端安装Moliplayer播放器,DLNA连接本地存储中的图片视频



centos7中挂载外部存储(家里的电脑硬盘拆下来用)

nextcloud中配置本地存储(上面挂载的硬盘)

centos7中安装minidlna(实现局域网影视服务器功能)

电视端安装Moliplayer播放器,DLNA连接本地存储中的图片视频






初步实现

手机电视播放硬盘中的影视资源

远程管理家中的网络设备

网站放在家中,外网通过域名访问管理.





四. 问题解决


4.1 安装centos7

U盘安装centos7遇到只有鼠标没有界面出来,经测试是分辨率问题

选择Install Centos 7,按e修改

将配置改为vmlinuz initrd=initrd.img inst.stage2=hd......quiet改为vmlinuz initrd=initrd.img linux dd quiet。

回车系统会进入磁盘设备列表,查看U盘的设备名。

记住设备名(sdb4),然后按ctrl + alt + del 重启,进入安装界面,按TAB编辑配置,改为vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet nomodeset

其中nomodeset可以解决只有鼠标没有界面出来的问题.



4.2 电视安装KODI

电视系统为安卓4,无法安装最新版KODI,只能安装老版本

各种皮肤插件不能用最新的.


4.3 nextcloud手动上传文件

通过直接上传到数据文件夹中资料后,在nextcloud中无法查看,需要使用occ进行扫描

cd /www/wwwroot/pan.xxx.net/

sudo -u www php occ files:scan --all

或者直接

sudo -u www php /www/wwwroot/pan.xxx.net/occ files:scan --all

如果服务器安装多个php,则需要指定php的位置

sudo -u www /www/server/php/73/bin/php /www/wwwroot/pan.***.net/occ files:scan --all

其中pan.xxx.net为nextcloud安装的目录


4.4 FRP服务的重启

定时查询FRP服务是否运行,未运行则重启FRP服务

利用宝塔计划任务实现

添加计划任务

脚本内容
chown -R www:www /www/wwwroot/pan.****.net/data/****/files/
wait
chmod 770 -R /www/wwwroot/pan.****.net/data/****/files/
wait
sudo -u www php /www/wwwroot/pan.****.net/occ files:scan --all
wait
pgrep -x frpc &> /dev/null
if [ $? -ne 0 ];then
systemctl restart frpc.service
fi


如果服务器安装多个php,则需要指定php的位置

修改sudo -u www php /www/wwwroot/pan.****.net/occ files:scan --all为以下

sudo -u www /www/server/php/73/bin/php /www/wwwroot/pan.***.net/occ files:scan --all

同时先修改文件用户为www,权限为770

同时自动更新最新文件到nextcloud



4.5 minidlna开机启动

相关文件路径

请注意权限设置,否则会造成无法启动


主程序位置/usr/sbin/minidlnad(权限755)


配置文件位置 /etc/minidlna.conf(权限644)

内容

port=8200
media_dir=APV,/media
log_dir=/var/log/minidlna
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
inotify=yes
enable_tivo=no
strict_dlna=no
notify_interval=900
serial=12345678
model_number=1


服务文件位置/etc/systemd/system/minidlna.service(权限644)

内容

[Unit]
Description=MiniDLNA
After=network.target

[Service]
ExecStart=/usr/sbin/minidlnad -S

[Install]
WantedBy=default.target


相关命令

systemctl force-reload minidlna.service (扫描媒体文件)

systemctl status minidlna.service -l

systemctl start minidlna.service

systemctl stop minidlna.service

systemctl restart minidlna.service

卸载

yum list minidlna

yum remove minidlna


4.6 nfs配置及启动

rpm -aq | grep rpcbind

rpm -aq | grep nfs

yum install nfs-utils rpcbind


systemctl list-unit-files --type=service


systemctl enable nfs.service

systectl status nfs.service

启动顺序 先启动rpcbind,再启动nfs

systemctl start rpcbind.service

systemctl start nfs.service


systemctl restart rpcbind.service

systemctl restart nfs.service


/etc/exports

/www/wwwroot/pan.xxxx.net/data/imenglei/files 192.168.2.*(rw) 192.168.1.*(rw) *(ro)


nfs除了主程序端口2049和rpcbind的端口111是固定以外,还会使用一些随机端口

/etc/sysconfig/nfs

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004


使用rpcinfo -p 192.168.1.9 查看nfs服务

使用showmount -e localhost 查看配置的nfs文件夹

使用chown -R nfsnobody.nfsnobody /home/nfs修改nfs文件夹权限



4.7 autossh


autossh.service

[Unit]
Description=Auto SSH Tunnel
After=network-online.target
[Service]
ExecStart=/usr/bin/autossh -NR 开启的端口:本地ip地址:本地端口 -i /home/huchao/.ssh/id_rsa vps用户@vps的ip地址 -p vps端口 >> /dev/null 2>&1
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
KillMode=process
Restart=no
[Install]
WantedBy=multi-user.target
WantedBy=graphical.target


4.8 服务器位置和内网访问


主路由

斐讯K2

192.168.10.1

次路由绑定IP

192.168.10.99



次路由

无线AP方式连接主路由


腾达A5

192.168.2.1

服务器绑定IP

192.168.2.99

DMZ主机

192.168.2.99



访问方法:

连接主路由网络

通过IP192.168.10.99进行访问

连接次路由网络

通过IP192.168.2.99进行访问



4.9 安装samba实现SMB服务

Samba服务器提供smbd、nmbd两个服务程序,分别完成不同的功能。其中,smbd负责为客户机提供服务器中共享资源(目录和文件等)的访问;nmbd负责提供基于NetBIOS协议的主机名称解析,以便为Windows网络中的主机进行查询服务。


yum install samba -y


启动服务文件

/usr/lib/systemd/system/smb.service


systemctl enable smb.service

systemctl start smb

systemctl status smb

systemctl restart smb
systemctl enable nmb.service
systemctl restart nmb.service



配置文件

/etc/samba/smb.conf

参考配置

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#============================ Share Definitions ==============================
[Anonymous]
path = /home/smb
browsable =yes
writable = yes
guest ok = yes
read only = no
[smb]
path = /home/smb2
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes



chmod -R 0755 /home/smb
chown -R nobody:nobody /home/smb

chmod -R 0755 /home/smb2
chown -R smb:smbrp /home/smb2


配置的文件夹路径需要设置对应要登录的用户名权限


添加一个用户来访问文件

groupadd smbgrp

useradd -g smbgrp smb

passwd smb


创建samba用户

smbpasswd -a smb


列出所有smb用户

pdbedit -L

查看用户详情

pdbedit -vL smb

测试命令

testparm


说明:win7不支持连接


测试登录方法


查询用户共享

smbclient -L 192.168.10.9 -U smb

如遇错误 session setup failed: NT_STATUS_LOGON_FAILURE
执行smbclient命令的用户ID没有成为samba服务的用户,解决方法如下:
先将改用户ID加入到samba中
smbpasswd -a 某用户ID
按要求设置密码

登录

smbclient //192.168.10.9/Records -U smb

相关命令

ls用于列表目录

pwd查看当前路径

get和mget用于下载文件

put和mput用于上传文件

0%