家庭宽带搭建ipv6私人网盘

news/2024/10/21 6:06:09/

家庭宽带搭建ipv6私人网盘

起:本人穷,只能购买1核2G1M的云服务器,访问大一点的图片就很吃力,于是乎想着将家中1000M的宽带拿来做服务器网络,访问服务器理论上行100MB/s,下行30MB/s(取决于宽带速率)。正好自己有一台闲置电脑,然后就开始了折磨历程,本人具备一点网络知识,不多但是够用。在最后运行起来,服务器8核4G1000M上行30M下行,结果还是令本人满意,除去域名有时候寻址慢点,访问设备有限制外(需具备公网ipv6地址,手机用流量或连接具有ipv6属性的无线网),其他都还在可接受范围内。

准备:一台可以安装虚拟机的电脑或直接上服务器,一条移动宽带(本人用的移动的宽带)。

搭建平台:物理机(Windows11),虚拟机(Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-56-generic x86_64))。

框架1:Apache承载 + NextCloud本体 + PHP执行语言 + MySQL数据存储 + DDNS-GO域名自动映射。

框架2:PHP-fmp + Nginx + NextCloud + MySQL + Redis + DDNS-GO。前3者搭建与配置可参考此文章:Ubuntu安装nginx+php+nextcloud

更注重云盘属性的方案:Cloudreve搭建私人云盘

1. 安装虚拟机

Windows11下载安装VMware,在清华源、阿里源或官方网站下载Ubuntu 22.04.1系统文件:阿里源,不懂的可自行百度一下,没有难度。然后在VMware中安装Ubuntu,可参考:VMware虚拟机安装Ubuntu22.04 详细教程。

2. 虚拟机网络模式

物理机直连光猫LAN接口(1000Mbps),虚拟机在 Vmware 虚拟机设置–硬件中设置网络为桥接模式:直连物理网络。宿主机须具有ipv6功能->光猫需要开启ipv6地址,这样宿主机ipv6地址是公网,桥接之后虚拟机也是公网ipv6地址,移动2409:** 电信240e:** 联调2400:**

修改虚拟机网卡速率:关闭虚拟机,找到虚拟机*.vmx 文件修改 ethernet0.virtualDev = "e1000"/"vmxnet3",开启虚拟机即为1000M/10Gbps网卡。

外网通过ipv6访问服务器步骤

访问设备须具有ipv6地址,测试地址:ipv6-test.com由于没有公网ipv4只有使用ipv6,可能需要光猫的超管密码设置参数,这个需要找宽带运维人员获取。进入光猫管理界面192.168.1.1(网线直连),在防火墙-攻击保护设置-关闭Ipv6Spi即可在公网访问内网具有公网ipv6地址的设备。检查是否连通,可在具有公网地址的PC上WIN+R输入cmd,然后ping -6 ipv6地址(虚拟机命令ifconfig查看)

3. 安装必要软件

3.1 准备

由于万米高墙的阻拦,国内使用外网资源速度十分有限,所以我们首先需要更换软件源。这里本人是直接使用的软件更新进行的换源,换的是清华源,如果手动换的,请参考网上众博主的文章。

有些操作需要root权限,可使用(sudo su)后输入用户密码后进入到root模式,操作便可以不加sudo。

系统源位置:/etc/apt/sources.list养成好习惯,先备份:cp /etc/apt/sources.list /etc/apt/sources.list.bak操作修改文件:vim sources.list换好源后进行软件更新:apt-get upgrade

3.2 ssh

远程连接。

安装:apt-get install openssh openssh-serversystemctl start ssh #启动sshsytemctl stop ssh #停止sshsystemctl enable ssh #开机自启动systemctl status ssh #查看ssh运行状态#配置允许root用户连接,默认端口22设置root用户密码:sudo passwd  然后输入两次新密码设置ssh的文件:cd etc/ssh -- vim sshd_config找到文件里的: PermitRootLogin prohibit-password 修改为:PermitRootLogin yes保存修改,重启ssh

这样一来就可以通过网络远程管理(如果不具备公网地址只能在局域网管理,有公网地址便可以进行公网管理,但是由于网络环境是ipv6,所以公网管理设备需要具有公网ipv6地址。或者使用后续的frp进行内网穿透端口做转发,这样便可以在任何公网设备对服务器进行远程管理)。

3.3 集成环境LAMP

推荐:不推荐集成LAMP环境,推荐更简便搭建NextCloud需要的集成环境(PHP+Apache2)参考:Apche2整合PHP 。

版本:8.1.12,本人需要集成的环境软件Xampp为搭建个人云盘做准备,需要PHP、Apache、数据库,去Xampp官网选择对应Linux的.run文件,上传到Ubuntu中。

上传目录(自定义)/opt/xampp-linux-x64-8.1.12-0-installer.run进入opt目录:cd /opt/执行安装等待安装完成:./xampp-linux-x64-8.1.12-0-installer.run进入安装目录(以下操作均基于这个目录):cd /opt/lampp操作:./lampp start/stop/restart 启动/关闭/重启所有程序,Apache MySQL等单独某个程序操作:./lampp start/stop/restartapache单独启动apache:./lampp startapache提示端口占用,修改httpd.conf文件(http):vim /etc/httpd.conf 80->8099修改httpd-ssl.conf文件(https):vim /etc/extra/httpd-ssl.conf 443->16443修改完成后同样报错无法启动:vim /lampp 将里面的testport 80修改为testport8099(自定义), testport 443修改为testport 16443(自定义)Apache日志目录:/opt/lampp/logs

配置 Apache(如果不使用80和443端口建议不开启端口强制重写https,浏览器默认会将一次跳转的域名记录,下次使用http访问会直接跳转https,然后不是使用的443端口就会无法访问的问题)。

httpd.conf: /opt/lampp/etc/httpd.conf
DocumentRoot "/opt/nextcloud"
<Directory "/opt/nextcloud">#RewriteEngine onAllowOverride AllRequire all granted#Order allow,deny#Allow from allOptions Indexes FollowSymLinks ExecCGI Includes#RewriteCond %{HTTP_HOST} ^yougos.asia$ [NC]#RewriteCond %{SERVER_PORT} !^443$#RewriteRule ^(.*)?$ https://www.example.com:443
</Directory>httpd-ssl.conf: /opt/lampp/etc/extra/httpd-ssl.conf
<VirtualHost _default_:443>DocumentRoot "/opt/nextcloud"ServerName www.example.comServerAlias *ServerAdmin 207239****@qq.comErrorLog "/opt/lampp/logs/error_log"TransferLog "/opt/lampp/logs/access_log"<IfModule mod_headers.c>Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"</IfModule># 开启sslSSLEngine on# 证书SSLCertificateFile "/opt/webapps/ssl-docs/example.com/example.com.crt"# 证书密钥SSLCertificateKeyFile "/opt/webapps/ssl-docs/example.com/example.com.key"# 证书链文件SSLCertificateChainFile "/opt/webapps/ssl-docs/example.com/root_bundle.crt"# 以下默认配置<FilesMatch "\.(cgi|shtml|phtml|php)$">SSLOptions +StdEnvVars</FilesMatch><Directory "/opt/lampp/cgi-bin">SSLOptions +StdEnvVars</Directory>BrowserMatch "MSIE [2-5]" \nokeepalive ssl-unclean-shutdown \downgrade-1.0 force-response-1.0CustomLog "/opt/lampp/logs/ssl_request_log" \"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

可参考:1.Linux安装Xampp

2.Linux下Lampp启动失败解决方法

3.4 Nginx

访问接入,版本1.18.0。

安装nginx:apt-get install nginx配置文件:/etc/nginx/sites-enabled/default日志文件:/var/log/nginx/systemctl start nginx #启动nginxsytemctl stop nginx #停止nginxsystemctl enable nginx #开机自启动nginxsystemctl status nginx #查看nginx运行状态

配置样例443-https端口,ssl证书是腾讯云免费证书nginx版本

server {listen 443 ssl;listen [::]:443 ssl;server_name example.com;#隐藏nginx版本号server_tokens off;#ssl证书文件--example.comssl_certificate /opt/webapps/ssl-docs/example.com/example.com_bundle.pem;ssl_certificate_key /opt/webapps/ssl-docs/example.com/example.com.key;#服务端要支持 协议配置ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:1m;ssl_session_timeout  5m;index index.html;root /opt/webapps/web-root-docs/...;if ($scheme = http) {return 301 https://$host$request_uri;}location /nextcloud {proxy_pass https://example.com;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host:$server_port;proxy_set_header Remote_Addr $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-For $remote_addr;}}

3.5 MySQL

数据库,版本8.0.31,高版本并不是所有命令都适用低版本,比如低版本password函数,高版本没有。

配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf日志文件:/var/log/mysql/安装mysql:apt-get install mysql-server初始用户名和密码文件:/etc/mysql/debian.cnf进入mysql:mysql -u 初始用户名 -p 初始用户名密码创建新用户:CREATE USER 'admin'@'%' IDENTIFIED BY 'password';修改用户密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';赋予权限:grant all privileges on *.* to 'admin'@'%' with grant option;刷新权限:flush privileges;

3.6 Redis

缓存,版本6.0.16。

安装redis:apt-get install redis检查版本:redis-cli --version配置文件:/etc/redis/redis.conf日志文件:/var/log/redis/配置--守护线程:daemonize=yes配置--远程访问:bind 0.0.0.0配置--开启密码:equirepass foobared -> equirepass passwordsystemctl start redis #启动redissytemctl stop redis #停止redissystemctl enable redis #开机自启动redissystemctl status redis #查看redis运行状态

参考链接:Redis安装使用

3.7 frp

版本:0.45.0,公网代理实现内网穿透(需要一台具有公网IP的服务器),经测试,代理速度取决于公网服务器带宽速率。

下载frp release版本:https://github.com/fatedier/frp/releases 选择 amd64.tar.gz版本解压缩:其中frpc frpc.ini是客户端文件,frps frps.ini是服务端文件运行服务:/opt/frp/frpc -c /opt/frp/frpc.ini

将frps运行在服务器上(具有公网地址的服务器)注意放行端口,默认端口是7500,还需放行代理的服务端口。在内网机器上运行frpc,这样就可以通过公网IP+端口访问内网服务。

frps配置:公网服务器做服务端,代理所有公网请求到内网服务器上。

[common]
tcp_mux = false #解除速度限制
bind_port = 7000 #代理服务端口,通过这端口转发
dashboard_port = 7500
token = 自己设置的密钥
vhost_http_port = 6010
vhost_https_port = 6020
dashboard_user = username #7500端口访问用户名
dashboard_pwd = password #7500端口访问密码
tls_enable = true #加密访问
log_file = /var/log/frp/frps.log #日志文件,不指定日志信息默认输出到控制台,需要设置文件夹777权限 chmod -R 777 /var/log/frp/
log_level = info #日志等级,可用等级“trace, debug, info, warn, error”
log_max_days = 3 #日志保存最大保存时间

frpc配置

[common]
server_addr = 公网地址
server_port = 7000 #对接转发端口
token = 服务端(代理端设置)
tcp_mux = false
log_file = /var/log/frp/frpc.log #日志文件,不指定日志信息默认输出到控制台,需要设置文件夹777权限 chmod -R 777 /var/log/frp/
log_level = info #日志等级,可用等级“trace, debug, info, warn, error”
log_max_days = 3 #日志保存最大保存时间[ssh] #每个服务名字不一样
type = tcp #代理类型
local_ip = 127.0.0.1
local_port = 22 #本地端口
remote_port = 6000 #公网服务器远程端口,使用公网IP+端口访问这个服务[web]
type = http
local_ip = 127.0.0.1
local_port = 9137
custom_domains = 域名
bandwidth_limit = 1000MB

创建系统服务

系统服务路径:/usr/lib/systemd/system创建文件并写入如下内容:vim frp.server[Unit]
Description=Frp Client Service
After=network.target[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp/frpc -c /opt/frp/frpc.ini
ExecReload=/opt/frp/frpc reload -c /opt/frp/frpc.ini
LimitNOFILE=1048576[Install]
WantedBy=multi-user.target保存后即可使用systemctl进行管理

3.8 DDNS-GO

版本:4.4.0,自动推送本地ipv4/ipv6地址到域名服务商将域名映射到推送的地址上。

下载:https://github.com/jeessy2/ddns-go/release 选择 Linux_X86_64.tar.gz 下载进入上传文件夹创建文件夹:>cd /opt/ >mkdir ddns-go解压到对应文件夹:tar -zxvf ddns-go_4.4.0_Linux_x86_64.tar.gz -C /opt/ddns-go进入文件夹:cd /ddns-go安装服务:./ddns-go -s install 卸载:./ddns-go -s uninstall安装服务后自动注册了系统服务功能,可使用systemctl进行操作进入ip:9876进行配置保存,生成配置文件地址:/root/.ddns_go_config.yaml 也可以对配置文件进行编辑保存,同网页设置一致

DDNS-GO进阶:在同一台服务器多个端口运行DDNS服务

在ddns-go下载源码:https://github.com/jeessy2/ddns-go/release在本地对源码进行编辑修改,查找所有的9876,修改为想要的端口*。修改util--user.go中:所有../.ddns_go_config.yaml -> ../.ddns_go_config_one.yaml(不同文件名即可,后缀需相同)。主目录main.go下:
svcConfig := &service.Config{Name:        "ddns-go", #修改为ddns-go-one 为了解决启动时与原服务冲突DisplayName: "ddns-go", #修改为ddns-go-one 为了解决启动时与原服务冲突...
}

修改完保存文件,进入Linux服务器,由于作者使用golang1.19编写,需要在服务器安装go环境。

获取压缩包:https://dl.google.com/go/go1.19.4.linux-amd64.tar.gz解压到对应文件夹:tar -zxvf ...tar.gz -C /opt/builder/go编辑环境文件:vim /etc/profile加上:export PATH=$PATH:/opt/builder/go/bin(对应自己地址) 保存退出刷新一下环境配置:source /etc/profile使用:go -version 查看是否安装成功

进入到自定义ddns-go编译,作者提供了Makefile文件编译ddns-go

进入到上传ddns-go源码地址,使用make build进行编译如果报错timeout,使用以下两句命令$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

然后将生成的ddns-go可执行文件像之前那么操作即可

3.9 Nextcloud

网盘软件,版本25.0.0。

下载软件包:https://download.nextcloud.com/server/releases/nextcloud-25.0.0.zip解压到对应地址:unzip nextcloud-25.0.0.zip -d /opt/nextcloud赋予权限:chmod —R 777 /opt/nextcloud配置文件:/opt/nextcloud/config/config.php

将用来访问的域名地址添加至配置文件中,不然显示从不被信任的站点访问,在网页中访问地址(前面Apache配置已经指向了NextCloud文件路径)即可进行对网盘的初始配置和安装,注意要配置数据库。

为解决NextCloud检查中的错误,需要在Xampp中PHP安装扩展,高版本不存在的扩展可以在低版本中找到,如/php-7.4.21/ext/下很多扩展。

首先找到对应的插件包,解压到对应目录,如:/opt/php-extension/extension1进入解压文件夹:cd /opt/php-extension/extension1利用PHP的phpize创建configure文件:/opt/lampp/bin/phpize然后:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig #不明所以然后:echo $PKG_CONFIG_PATH #查看是否配置成功然后将配置文件指定到PHP配置文件:./configure --with-php-config=/opt/lampp/bin/php-config然后使用make最后使用make install输出Installing shared extensions: /opt/lampp/lib/php/extensions/no-debug-non-zts-20210902/(对应自己目录)即可然后去/opt/lampp/etc下编辑php.ini:vim php.ini 增加extension="extension.so"重启apache:./lampp restartapache

3.10 邮件服务器

域名解析到服务器地址,mail@example.comubuntu安装postfix:apt-get install mailutils自定义安装,测试邮件发送sendmail -F Luod -f admin -t name@163.com
Subject: zhuti
neirong
.(结束标志)检查邮件,收件箱和垃圾邮箱报错1:SMTPUTF8 is required, but was not offered by host(服务端未提供SMTPUTF8)
解决:在服务器/etc/postfix/main.cf文件下增加:smtputf8_enable = no,然后重启postfix(systemctl重启方法)报错2550 Domain may not exist or DNS check failed
解决:似乎是关于域名解析和注册的问题

家庭宽带基本是会被系统拦截的,使用各邮箱的SMTP服务代发服务即可,发向QQ邮件需要域名可连通。

4. 启动服务

开启所有服务,使用域名即可访问自己的网盘和服务,速度取决于家庭宽带速度和服务器处理速度,Enjoy it。

5. 其他

为解决服务器长时间运行(笔记本垃圾)压力,可以定时重启释放资源,重启后配置的服务均可自动重启,唯一未找到自动重启的是Xampp下的Apache,但是可以在重启后使用定时任务启动。

1.创建定时任务:crontab -e0 2 * * * /sbin/reboot #凌晨两点重启服务器5 2 * * * /opt/lampp/lampp startapache #凌晨两点5分重启Apache2.php安装扩展报错:Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.apt-get install autoconf3.php安装扩展报错:configure: error: no acceptable C compiler found in $PATHapt-get install gcc4.configure: error: The pkg-config script could not be found or is too old.  Make sure itapt-get install pkg-config5.Please provide a path to MagickWand-config or Wand-config program.apt install libmagick++-dev6.No package 'oniguruma' foundapt-get install libonig-dev7.sodium安装先安装libsodium-stable
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz
tar -zxf libsodium-1.0.18-stable.tar.gz
cd libsodium-stable
./configure --with-php-config=/opt/lampp/bin/php-config
make
make install再安装sodium,操作和安装php扩展一致

http://www.ppmy.cn/news/439840.html

相关文章

光猫密码

光猫密码 光猫密码 移动光猫帐号CMCCAdmin密码 aDm8H%MdA 华 为 的 &#xff1a; telecomadmin, 密 码 &#xff1a; admintelecom 中国移动光纤宽带丨P:192.168.100.1 超级账号&#xff08;telecomadmin&#xff09;及密码&#xff08;n E7jA%5m&#xff09; 用户名&#…

【js】鼠标禁止右键禁止打开控制台及键盘禁用

文章目录 前言一、禁用1. 禁用鼠标右键2. 禁用鼠标选中3. 禁用键盘F12 二、所有代码总结 前言 大家好&#xff0c;今天和大家分享一下在前端js中禁止鼠标在浏览器中右键&#xff0c;禁止鼠标选中和禁止键盘按键。 这个方法是我在制作一个单词考核系统时所使用到的&#xff0c;…

ns手柄pc驱动_价格只有微软Xbox1/3,北通宙斯精英手柄测评,性能手感相差不多

手游伴随手机性能的强悍&#xff0c;成为游戏市场的领跑者&#xff0c;但不可否认就是在端游并不亚于手游&#xff0c;依然有着固定的人群。而作为国内知名外设品牌“北通”&#xff0c;无论是对于手游外设&#xff0c;还是端游外设&#xff0c;都一直不断在推陈出新&#xff0…

Android手柄数据全解析

前言 功能需要&#xff0c;获取物理手柄数据(本文章只针对处于Android模式的手柄)&#xff0c;然后转换成云需要的数据。手柄数据主要分为两款&#xff0c;一个是轴数据&#xff0c;一个是按键数据&#xff0c;下面分别来说明。 判断是否是手柄设备 public static boolean is…

android 手柄 一键宏,手柄一键宏 | 手游网游页游攻略大全

发布时间&#xff1a;2015-11-29 6.0"德拉诺之王"暗牧竞技场PVP提高15%伤害起手一键宏分享,希望对大家有帮助. 本宏是要有PVP2件套. 原理是:战斗前换PVP2件套.消散.取消消散.吃药水.换PVE装 ... 标签&#xff1a; 游戏资讯 攻略秘籍 发布时间&#xff1a;2015-09-15 …

家用工具套装_一套适合家用的简洁便携工具箱(WORKPOR)

一套适合家用的简洁便携工具箱(WORKPOR) 2017-04-06 20:32:20 5点赞 12收藏 4评论 万克宝WORKPRO 50件套高级家用工具组套【行情 报价 价格 评测】-土猫网土猫网&#xff0c;涵盖万克宝WORKPRO 50件套高级家用工具组套等上万种工具产品,万克宝WORKPRO 50件套高级家用工具组套价…

ns手柄pc驱动_颜值、功能、手感同步在线 北通宙斯机械游戏手柄体验

受本次疫情影响&#xff0c;今年的春节假一天都没得放&#xff0c;从年底就一直正常上班中&#xff0c;原本打算假期里肝游戏的计划也泡汤了。还好&#xff0c;在全国上下的通力协作下&#xff0c;近期的疫情抑制情况非常喜人&#xff0c;各种数据都趋崖式下降&#xff0c;生活…