• 如何在Debian桌面/服务器上安装Syncthing

    本教程将向您展示如何在Debian上安装Syncthing。Syncthing是一个免费的点对点连续文件同步程序,允许您跨多个设备同步文件,可用于Linux、BSD、macOS、Windows、Android和Solaris。 它是流行的Resilio Sync(以前称为BitTorrent Sync)应用程序的开源替代方案。在一台机器上创建、修改或删除文件将自动复制到其他设备。Syncthing不会将文件上传到Nextcloud这样的中央服务器,而是直接在设备之间交换数据。在设备之间传输时,所有数据都会使用TLS加密。 通过Deb官方存储库在Debian上安装Syncthing 使用curl下载GPG密钥,然后使用apt密钥导入密钥。 sudo apt get安装curl-shttps://syncthing.net/release-key.txt| sudo apt按键添加- 如果在终端中看到OK,则表示GPG密钥已成功导入。然后使用以下命令添加正式的deb存储库。 回声“黛布”https://apt.syncthing.net/syncthing stable“| sudo tee/etc/apt/sources.list.d/syncthing.list 由于该存储库使用https,我们需要安装apt transport https包,以便apt包管理器可以与该存储库建立https连接。 sudo apt get安装apt传输https 更新本地包索引并在Debian上安装syncthing。 sudo-apt-get-update sudo-apt-get-install-syncthing 使用Systemd将Syncthing设置为系统服务 官方Syncthing deb包附带所需的systemd服务文件。在/lib/systemd/system/directory下,您将找到一个[email ;protected]文件。通过运行以下命令,使syncthing在启动时自动启动。用实际用户名替换用户名。 sudo systemctl启用[电子邮件和#160;受保护]用户名。服务 上述命令将创建指向[email ;protected]文件的符号链接。 从/etc/systemd/system/multi-user创建符号链接。目标想要/[email ;protected]到/lib/systemd/system/[email ;protected] 现在,我们可以使用以下命令启动Syncthing服务。 sudo systemctl start[电子邮件和#160;受保护]用户名。服务 检查状态 systemctl状态[电子邮件和#160;受保护]用户名。服务 输出:   提示:如果上述命令没有立即退出,请按Q键重新控制终端。 我们可以看到Syncthing autostart已启用并且正在运行。 syncthing systemd服务在/home/username/下创建配置文件。config/syncthing/和一个文件夹/home/username/Sync作为默认的同步文件夹。主配置文件是/home/username/。config/syncthing/config。xml。 在其他操作系统上安装Syncthing 转到Syncthing下载页面,在Windows、macOS、BSD、Android等其他操作系统上安装Syncthing。 打开防火墙中的端口22000 Syncthing使用端口22000与对等方通信。如果您的计算机或服务器启用了UFW防火墙,则需要使用以下命令允许端口22000。 sudo ufw允许22000/tcp 访问Debian Syncthing Web界面 默认情况下,Syncthing服务监听127.0.0.1:8384。现在,在Web浏览器的地址栏中,键入127.0.0.1:8384以访问Syncthing Web界面。您可以添加其他同步设备并与它们共享文件夹。   如果在远程Debian服务器上安装Syncthing,则可以通过编辑配置文件来启用对Syncthing web界面的远程访问。 nano/home/username/。config/syncthing/config。xml 找到下面两行。 &lt;gui enabled=“true”tls=“false”debug=“false”&gt&书信电报;地址&gt;127.0.0.1:8384&lt/地址&gt; 将tls=“false”更改为tls=“true”,这样HTTP通信将被加密。并将127.0.0.1更改为Debian服务器的公共IP地址。保存并关闭文件。重新启动Syncthing以使更改生效。 sudo systemctl start[电子邮件和#160;受保护]用户名。服务 现在在web浏览器中键入服务器ip地址:8384以访问Syncthing web界面。显然,您需要使用Debian服务器的真实IP地址。您将被要求设置用户名和密码以保护Syncthing web界面。 您还可以使用Nginx或Apache设置反向代理以访问web用户界面,本教程稍后将对此进行解释。 开始在设备之间同步文件 一旦有两台设备运行Syncthing,我们就可以开始在它们之间同步文件了。 在Syncthing web界面中,单击操作&gt;在右上角显示ID。您将看到设备ID,它是一长串字母和数字。QR码也是设备ID,用于在智能手机上配置Syncthing。   复制设备ID,然后打开第二台设备的Syncthing Web界面,单击右下角的添加远程设备。然后粘贴设备ID并为设备命名。点击保存按钮。   现在,第二台设备将尝试连接到第一台设备。在第一台设备上刷新Web界面,您将看到以下消息。单击“添加设备”将第二个设备添加到第一个设备的设备列表中。   现在,这两个设备已连接。 Web界面左侧的一个窗格是默认的同步文件夹(/home/username/sync)。单击“添加文件夹”按钮添加新文件夹。为此文件夹指定一个描述性标签,并设置文件夹路径。   Syncthing作为您自己的用户帐户运行,因此您需要对共享文件夹具有写入权限。如果在共享文件夹时看到以下错误消息,则表示您没有该文件夹的写入权限。 2020-06-21 20:05:49:无法创建文件夹标记:mkdir。stfolder:只读文件系统 您可以使用setfacl授予写入权限。 sudo apt安装acl sudo setfacl-R-mu:username:rx/folder/path/ 在共享选项卡中,选择其他同步设备。   在“高级”选项卡中,可以选择文件夹类型、重新扫描间隔等。   单击“保存”按钮开始同步。另一台设备的Web界面上将显示一条消息。单击“添加”以接收文件。 现在这两台设备正在同步文件。在右边,你可以看到下载速率、上传速率、本地文件夹大小等。 设置反向代理 由于它监听127.0.0.1:8384,Syncthing Web界面仅对来自同一台计算机的连接可用。为了能够从远程计算机访问Syncthing Web界面,我们可以使用Nginx或Apache为Syncthing设置反向代理。 Nginx Nginx是一个非常流行的web服务器和反向代理。如果您更喜欢使用Nginx,请运行以下命令进行安装。 sudo apt安装nginx 然后创建一个服务器配置文件。 sudo nano/etc/nginx/conf.d/syncthing。形态 将以下内容添加到此文件。更换同步器。实例com与您首选的域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;server_name syncthing.example.com;access_log/var/log/nginx/syncthing.access.log;error_log/var/log/nginx/syncthing.error.log;location/{proxy_passhttp://127.0.0.1:8384; proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。测试Nginx配置并重新加载Nginx。 sudo nginx-t sudo systemctl reload nginx 将域名指向Debian的IP地址后,在浏览器地址栏中键入域名,就会看到Syncthing Web界面。 如果浏览器无法连接到Syncthing web界面,可能需要在防火墙中打开端口80。例如,如果使用UFW,则运行以下命令。 sudo ufw允许80/tcp 阿帕奇 Apache是众所周知的web服务器,也可以用作反向代理。如果您更喜欢Apache而不是Nginx,请使用以下软件安装: sudo apt安装apache2 启动Apache并启用自动启动。 sudo systemctl启动apache2 sudo systemctl启用apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 现在为Syncthing创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/同步。形态 将以下行复制并粘贴到文件中。更换同步器。实例使用你的真实域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 &lt;虚拟主机*:80&gt;服务器名同步。实例com错误文件404/404。html ProxyPass/http://127.0.0.1:8384/ProxyPassReverse/http://127.0.0.1:8384/ErrorLog${APACHE_LOG_DIR}/syncthing_错误。log CustomLog${APACHE_log_DIR}/syncthing_访问。日志合并&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo是一个敏感的东西。形态 重启Apache sudo systemctl重启apache2 现在,您可以通过syncthing访问Web UI。实例通用域名格式。 如果浏览器无法连接到Syncthing web界面,可能需要在防火墙中打开端口80。例如,如果使用UFW,则运行以下命令。 sudo ufw允许80/tcp 使用HTTPS保护Syncthing Web UI 为了在通过域名访问Syncthing web UI时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。首先,打开防火墙中的端口443。 sudo ufw允许443/tcp 然后运行以下命令安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;protected]-d syncthing。实例通用域名格式 如果使用Apache,请安装Certbot Apache插件。 sudo apt安装python3 certbot apache 并运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d syncthing。实例通用域名格式 哪里 --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 刷新Syncthing Web GUI,您会发现HTTP连接自动重定向到HTTPS安全连接。 启用用户身份验证 默认情况下,任何人都可以在设置反向代理后访问Syncthing web界面。我们可以启用用户身份验证来限制访问。单击右上角的操作按钮,然后选择设置-&gt;桂。 在GUI身份验证用户字段中输入用户名,在GUI身份验证密码字段中输入密码。然后保存你的设置。 请注意,您不需要在Use HTTPS for GUI框上打勾,这使Syncthing能够使用自签名证书。我们已经在Apache/Nginx中安装了一个受主流Web浏览器信任的有效证书。 保存更改后,请重新启动Syncthing systemd服务,否则在重新加载页面时可能会看到502坏网关错误。 sudo systemctl restart[email ;protected]用户名。服务 现在使用新用户名和密码登录Syncthing Web界面。 仅发送&amp;只接收文件夹 在Syncthing中共享文件夹时,可以转到“高级”选项卡,从三种文件夹类型中选择一种: 发送&amp;接收(默认) 只发送 只收 您可能希望选择仅发送或仅接收。例如,如果您有三台计算机:A、B和C,并且希望将计算机A和B上的文件夹聚合到计算机C上的单个文件夹中。则可以将文件夹类型设置为仅在计算机C上接收。这样,计算机C将所有文件都放在单个文件夹中。计算机A和B仍保留原始文件。不多也不少。 当您在计算机C上使用相同的文件夹路径时,Syncthing可能会警告您“此路径是现有文件夹的子目录”。您可以忽略此警告,因为您有一个只接收文件夹。不会删除文件夹中的现有文件。 通过中继服务器同步 如果两个Syncthing实例无法相互连接,则Syncthing将尝试使用中继服务器传输文件。 它们无法相互连接的一个常见原因是其中一个位于NAT设备后面,并且没有配置端口转发。配置端口转发后,可以禁用中继服务器。下面是方法。单击编辑按钮并选择高级选项卡,将地址从动态更改为tcp://ip-address:22000.当然,你需要使用你真正的IP地址。 故障排除 如果Syncthing实例无法相互连接,可以使用ss(socket stats)实用程序检查Syncthing是否正在TCP端口22000上侦听。 sudo ss-lnpt | grep syncthing 从下面的屏幕截图可以看到,我的Syncthing正在监听端口8384(web界面)和22000(对等连接)。 如果没有,您可以编辑配置文件。 纳米~/。config/syncthing/config。xml 找到下面这行。 &lt;listenAddress&gt;违约&lt/listenAddress&gt; 将默认值更改为tcp://your-IP-address. &lt;listenAddress&gt;tcp://12.34.56.78</listenAddress&gt; 保存并关闭文件。然后重启同步。 sudo systemctl restart[email ;protected]用户名。服务 错过了比赛。stfoler文件 这个Syncthing需要stfoler文件才能工作。这是一个空文件。你不需要添加任何内容。如果。同步文件夹下缺少stfolder文件,则同步将停止。您可以创建以下Cron作业来自动创建文件。 @每小时触摸/path/to/sync/folder/。stfolder 如果文件丢失,触摸命令将创建该文件。如果文件已经存在,它将更新文件时间戳。 收尾 我希望本教程能帮助您在Debian上安装和使用Syncthing。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:557
  • 在Debian 10 Buster上与YouPHPTube一起运行自己的视频共享网站

    本教程将向您展示如何在Debian 10 Buster上使用YouPHPTube运行自己的视频共享网站。YouPHPTube是YouTube、Vimeo等视频共享网站的开源、自托管替代方案。使用YouPHPTube,您可以将视频上传到自己的服务器,并与互联网共享。 YouPHPTube功能 无限和同步的直播流,你可以有无限的用户连接到每个直播流。 直接从互联网导入和编码其他网站的视频 从本地视频目录批量编码 制作私人视频 与Youtube完全集成的功能,允许您将视频与Youtube同步 将多种格式的多媒体文件转换为MP4、WebM和MP3文件 支持Amazone S3(简单存储服务) 响应性网站布局。YouPHPTube在任何设备上都令人难以置信。(您可以选择YouTube或Netfilx样式的布局。) 用户频道和用户播放列表 订阅你喜欢的频道 您可以使用YouPHPTube统计信息中的最新指标和报告来监控视频的性能。 使用插件扩展站点功能。 搜索引擎优化 iOS和安卓应用可用 YouPHPTube服务器要求 首先,你应该知道,对于视频共享网站来说,单核CPU是不可行的,因为编码过程会占用大量CPU资源。 然后根据站点的用户数量选择服务器规格。 如果你只想用它来分享你自己的视频,你需要一个至少有2个CPU核和4GB内存的服务器。您可以从Contabo购买功能强大的VPS(虚拟专用服务器),成本很低。 如果你希望你的站点有几十个用户,那么你可以考虑Cababo特大VPS,它有10个CPU内核,60GB RAM,1Gb/s端口速度,1.6TB磁盘空间,无限流量,但成本只有26.99欧元/月。 当你的网站增长超过这个范围时,你应该购买一台专用服务器。 在Debian 10 Buster上安装YouPHPTube的软件要求 YouPHPTube需要PHP和MySQL/MariaDB。要学习本教程,您应该已经设置了灯堆栈或LEMP堆栈。如果您更喜欢使用ApacheWeb服务器,请安装LAMP堆栈。 如何在Debian 10 Buster上安装LAMP(Apache、MariaDB、PHP)堆栈 如果您更喜欢使用Nginx web服务器,请安装LEMP stack。 如何在Debian 10 Buster上安装LEMP(Nginx、MariaDB、PHP)堆栈 注:Nginx对YouPHPTube的支持只是实验性的。如果使用Nginx,可能会出现问题。 你还需要一个域名。我在namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。 YouPHPTube由两部分组成。 主要部分是前端拖缆服务器,它允许用户观看现有视频。 另一部分是编码器,它允许用户上传视频。 公共编码器使用域名编码器。youphptube。通用域名格式。如果你不想让用户在上传视频时离开你的网站,你需要设置你的私人编码器。在本文中,我将向您展示如何进行。不用麻烦了,我们开始吧。 步骤1:在Debian 10 Buster服务器上下载YouPHPTube 通过SSH登录Debian 10 Buster服务器。然后转到web根目录。 cd/var/www/ 从Github克隆YouPHPTube拖缆存储库。 sudo apt安装git sudo git clonehttps://github.com/YouPHPTube/YouPHPTube.git 然后进入目录。 cd YouPHPTube/ 从Github克隆YouPHPTube编码器存储库。 sudo git克隆https://github.com/YouPHPTube/YouPHPTube-Encoder.git 它将另存为YouPHPTube编码器。我们将其重命名为upload,以便用户在上传视频时更好地了解此URL的用途。 sudo mv YouPHPTube编码器上传 接下来,我们需要将www数据(web服务器用户)作为web根的所有者。 sudo chown www-data:www-data/var/www/YouPHPTube/-R 第2步:安装依赖项 YouPHPTube使用FFmpeg对视频进行编码。我们可以从默认的Debian存储库轻松安装FFmpeg。 sudo apt安装ffmpeg 要在多媒体文件中读写元信息,我们需要安装libimage exiftool perl包。 sudo apt安装libimage exiftool perl 您还需要安装一些常见的PHP扩展。 sudo apt安装php7。3-cli php7。3-常见php7。3-json php7。3-opcache php7。3-readline php7。3-卷曲php7。3-gd php7。3-xml 要从其他网站获取视频,我们需要安装YouTube DL。虽然它包含在Debian存储库中,但已经过时了。我们将从Python包索引安装YouTube DL,该索引始终包含最新版本的YouTube DL。 sudo apt install python3 pip sudo-H pip3 install youtube dl 使用最新版本非常重要,否则可能无法从其他网站下载视频。我们可以创建一个Cron作业来自动检查并安装最新版本。 sudo crontab-e 在Crontab文件的末尾添加以下行,尝试每天升级YouTube DL。 @每日sudo-H pip3安装——升级youtube dl&gt/dev/null 第3步:在MariaDB中创建数据库和用户 使用以下命令登录MariaDB数据库服务器。由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB根密码。我们只需要在mysql命令前面加上sudo。 sudo mysql 然后为YouPHPTube创建一个数据库。本教程将数据库命名为YouPHPTube。你可以用任何你喜欢的名字。 创建数据库YouPHPTube; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户youphptube@localhost由“您的密码”标识; 授予此用户在youphptube数据库上的所有权限。 授予YouPHPTube上的所有特权。*到youphptube@localhost; 我们还需要为编码器创建一个单独的数据库。 创建数据库YouPHPTubeEncoder; 为此数据库创建一个用户。 创建用户encoder@localhost由“您的密码”标识; 授予特权。 授予YouPHPTubeEncoder的所有特权。*到encoder@localhost; 刷新特权表并退出。 同花顺特权;出口 第4步:设置Web服务器 我们可以使用Apache或Nginx web服务器。 阿帕奇 如果您喜欢Apache,可以使用命令行文本编辑器(如Nano)为YouPHPTube创建一个虚拟主机文件。 sudo nano/etc/apache2/sites available/youphptube。形态 将以下文本放入文件中。用实际数据替换红色文本。我在本教程中使用了一个子域。如果你愿意,你可以使用你的主域名。不要忘记在DNS记录管理器中为域名设置DNS记录。还要注意,文档根目录区分大小写,不应在末尾添加正斜杠。 &lt;虚拟主机*:80&gt;服务器名管。你的地盘。com DocumentRoot/var/www/YouPHPTube&lt;目录/var/www/YouPHPTube&gt;目录索引。php选项+FollowSymLinks AllowOverride All需要全部授予&lt/目录&gt;ErrorLog${APACHE_LOG_DIR}/youphptube。错误log CustomLog${APACHE_log_DIR}/youphptube。通道日志合并&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite youphptube。形态 我们需要启用重写模块。 sudo a2enmod重写 重新启动Apache以使更改生效。 sudo systemctl重启apache2 现在参观地铁。你的地盘。com,您将被重定向到安装向导页面(tube.yourdomain.com/install/index.php)。如果看到的是默认的Apache页面而不是安装向导,则需要禁用默认的虚拟主机。 sudo A2000默认值。形态 然后重启Apache。 在安装向导中输入任何信息之前,我们需要启用HTTPS。 Nginx 如果您更喜欢Nginx,请创建一个youphptube。conf文件位于/etc/nginx/conf.d/目录中。 sudo nano/etc/nginx/conf.d/youphptube。形态 将以下文本放入文件中。用实际数据替换红色文本。我在本教程中使用了一个子域。如果你愿意,你可以使用你的主域名。不要忘记在DNS记录管理器中为域名设置DNS记录。还要注意,文档根目录区分大小写。 服务器{listen 80;server_name tube.yourdomain.com;root/var/www/YouPHPTube;index index.php index.html index.htm;charset utf-8;客户端_max_body_size 2G;access_log/var/log/nginx/YouPHPTube.access.log;error_log/var/log/nginx/YouPHPTube.error.log;location~/.php${fastcgi_分割路径_info^(+/.php)(/)$; fastcgi_pass unix:/run/php/php7。3-fpm。短袜fastcgi_索引。php;包括fastcgi_参数;fastcgi_参数脚本_文件名$document_root$fastcgi_脚本_name;}#在中翻译Apache重写规则。htaccess文件到Nginx重写规则位置/{rewrite^/$/view/last;}位置/引导{rewrite^/bootstrap/(.+)$/view/bootstrap/$1 last;}location/js{rewrite^/js/(.+)$/view/js/$1 last;}位置/css{rewrite^/css/(.+)$/view/css/$1 last;}位置/img{rewrite^/img/(.+)$/view/img/$1 last;}位置/页面{rewrite^/page/([0-9]+)/?$/view/?page=$1 last;}位置/videoOnly{rewrite^/videoOnly/?$/view/?type=video last;}位置/audioOnly{rewrite^/audioOnly/?$/view/?type=audio last;}location=/download{rewrite^(.*)$/view/downloadExternalVideo.php last;}location=/downloadNow{rewrite^(.*)$/objects/downloadVideo.php last;}location=/getDownloadProgress{rewrite^(.*)$/objects/downloadVideoProgress.php last;}location=/about{rewrite^(.*)$/view/about.php last;}location=/contact{rewrite^(.*)$/view/contact.php last;}location=/sendmail{rewrite^(.*)$/objects/sendmail.json.php last;}location=/captcha{rewrite^(.*)$/objects/getCaptcha.php last;}位置/监视器{rewrite^/monitor/(.+)$/objects/ServerMonitor/$1 last;}位置/cat{rewrite^/cat/([A-Za-z0-9-]+)/?$/view/?catName=$1 last;}位置/视频{rewrite^/video/([A-Za-z0-9-.]+)/?$/查看/?videoName=$1 last;}位置/视频嵌入{rewrite^/videoembedded/([A-Za-z0-9-.]+)/?$/查看/视频嵌入。php?videoName=$1 last;}location=/upload{rewrite^(.*)$/view/mini upload form/last;}location=/fileUpload{rewrite^(.*)$/view/mini upload form/upload.php last;}location/uploadStatus{rewrite^/uploadStatus/view/mini upload form/videoConversionStatus.php last;}location=/user{rewrite^(.*)$/view/user.php last;}location=/users{rewrite^(.*)$/view/managerUsers.php last;}位置=/用户。json{rewrite^(.*)$/objects/users.json.php last;}location=/updateUser{rewrite^(.*)$/objects/userUpdate.json.php last;}location=/savePhoto{rewrite^(.*)$/objects/userSavePhoto.php last;}location=/addNewUser{rewrite^(.*)$/objects/userAddNew.json.php last;}location=/deleteUser{rewrite^(.*)$/objects/userDelete.json.php last;}location=/recoverPass{rewrite^(.*)$/objects/userRecoverPass.php last;}location=/saveRecoverPassword{rewrite^(.*)$/objects/userRecoverPassSave.json.php last;}location=/signUp{rewrite^(.*)$/view/signUp.php last;}location=/createUser{rewrite^(.*)$/objects/userCreate.json.php last;}location=/usersGroups{rewrite^(.*)$/view/managerUsersGroups.php last;}location=/usersGroups。json{rewrite^(.*)$/objects/usersGroups.json.php last;}location=/addNewUserGroups{rewrite^(.*)$/objects/userGroupsAddNew.json.php last;}location=/deleteUserGroups{rewrite^(.*)$/objects/userGroupsDelete.json.php last;}location=/ads{rewrite^(.*)$/view/managerAds.php last;}location=/addNewAd{rewrite^(.*)$/objects/video_adsAddNew.json.php last;}location=/ads.json{rewrite^(.*)$/objects/video_ads.json.php last;}location=/deleteVideoAd{rewrite^(.*)$/objects/video_adDelete.json.php last;}location/adClickLo{rewrite^/adClickLog/objects/video_adClickLog.php last;}location=/categories{rewrite^(.*)$/view/managerCategories.php last;}位置=/类别。json{rewrite^(.*)$/objects/categories.json.php last;}location=/addNewCategory{rewrite^(.*)$/objects/categoryAddNew.json.php last;}location=/deleteCategory{rewrite^(.*)$/objects/categoryDelete.json.php last;}location=/orphanFiles{rewrite^(.*)$/view/orphanFiles.php last;}location=/mvideos{rewrite^(.*)$/view/managerVideos.php last;}地点=/视频。json{rewrite^(.*)$/objects/videos.json.php last;}location=/deleteVideo{rewrite^(.*)$/objects/videoDelete.json.php last;}location=/addNewVideo{rewrite^(.*)$/objects/videoAddNew.json.php last;}location=/refreshVideo{rewrite^(.*)$/objects/videoRefresh.json.php last;}location=/setStatusVideo{rewrite^(.*)$/objects/videoStatus.json.php last;}location=/reencodeVideo{rewrite^(.*)$/objects/videoReencode.json.php last;}location=/addViewCountVideo{rewrite^(.*)$/objects/videoAddViewCount.json.php last;}location=/saveComment{rewrite^(.*)$/objects/commentAddNew.json.php last;}location/comments{rewrite^/comments.json/([0-9]+)$/objects/comments.json.php?video_id=$1 last;}location=/login{rewrite^(.*)$/objects/login.json.php last;}location=/logoff{rewrite^(.*)$/objects/logoff.php last;}location=/like{rewrite^(.*)$/objects/like.json.php?like=1 last;}location=/loke{rewrite^(.*)$/objects/like.json.php?like=-1 last;}位置/更新{rewrite^/update/?$/update/update.php last;}location=/siteConfigurations{rewrite^(.*)$/view/configurations.php last;}location=/updateConfig{rewrite^(.*)$/objects/configurationUpdate.json.php last;}location=/charts{rewrite^(.*)$/view/charts.php last;}位置=/upload/index。php{rewrite^(.*)$/upload/view/index.php last;}location=/upload/isAdmin{rewrite^(.*)$/upload/view/isAdmin.php last;}location=/upload/removeStreamer{rewrite^(.*)$/upload/view/removeStreamer.php last;}location=/upload/priority{rewrite^(.*)$/upload/view/priority.php last;}location=/upload/status{rewrite^(.*)$/upload/view/status.php last;}location=/upload/serverStatus{rewrite^(.*)$/upload/view/status.php?serverStatus=1 last;}location=/upload/upload{rewrite^(.*)$/upload/view/upload.php last;}位置=/upload/listFiles。json{rewrite^(.*)$/upload/view/listFiles.json.php last;}location=/upload/deleteQueue{rewrite^(.*)$/upload/view/deleteQueue.php last;}location=/upload/saveConfig{rewrite^(.*)$/upload/view/saveConfig.php last;}位置=/upload/youtubeDl。json{rewrite^(.*)$/upload/view/youtubeDl.json.php last;}位置=/upload/send。json{rewrite^(.*)$/upload/view/send.json.php last;}位置=/上传/拖缆。json{rewrite^(.*)$/upload/view/streamers.json.php last;}位置=/upload/queue。json{rewrite^(.*)$/upload/view/queue.json.php last;}location=/upload/queue{rewrite^(.*)$/upload/view/queue.php last;}location=/upload/login{rewrite^(.*)$/upload/objects/login.json.php last;}location=/upload/logoff{rewrite^(.*)$/upload/objects/logoff.json.php last;}位置/上传/{rewrite“^/getImage/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})$”/upload/objects/getImage。php?base64Url=$1&amp;格式=上次2美元;重写“^/getImageMP4/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})/([0-9.]+)$”/上传/objects/getImageMP4。php?base64Url=$1&amp;格式=$2&amp;时间=上次3美元;}location/upload/getSpiritsFromVideo{rewrite^/getSpiritsFromVideo/([A-Za-z0-9=/])/([0-9]+)/([0-9]+)$/upload/objects/getSpiritsFromVideo.php?base64Url=$1&amp;tileWidth=$2&amp;totalClips=$3 last;}location/upload/getLinkInfo{rewrite^/getLinkInfo/([A-Za-z0-9=/]+)$/upload/objects/getLinkInfo.json.php?base64Url=$1 last;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在参观地铁。你的地盘。com,您将被重定向到安装向导页面(tube.yourdomain.com/install/index.php)。在安装向导中输入任何信息之前,我们需要启用HTTPS。 步骤5:启用HTTPS 为了加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10 Buster服务器上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果使用Apache,还需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 并运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d tube。你的地盘。通用域名格式 如果使用Nginx,请安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;protected]-d tube。你的地盘。通用域名格式 哪里 --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 第6步:使用安装向导完成安装 现在去看电视。你的地盘。com和安装向导将出现。在左侧,您可以看到服务器是否满足要求。 如果使用Nginx,可以忽略以下消息。 您的服务器是nginx/1.14.2,必须安装Apache。 如您所见,PHP post_max_大小应至少为100M,upload_max_文件大小应至少为100M。我们需要编辑php。ini文件来更改这两个值。如果使用ApacheWeb服务器,那么 sudo nano/etc/php/7.3/apache2/php。伊尼 如果将Nginx与PHP-FPM一起使用,则需要编辑PHP的FPM版本。ini文件。 sudo nano/etc/php/7.3/fpm/php。伊尼 找到下面两行。 post_max_size=8M上传_max_filesize=2M 根据要上传的视频文件大小更改值。例如,如果允许上传1G视频文件,则 post_max_size=1024M上传_max_filesize=1024M 保存并关闭文件。重新启动Apache以使更改生效。 sudo systemctl重启apache2 如果将Nginx与PHP-FPM一起使用,则重新启动PHP-FPM。 sudo systemctl重新启动php7。3-fpm 现在刷新YouPHPTube安装向导页面。你的服务器应该通过所有要求。现在在右边,你可以输入你的视频网站的标题。输入之前创建的YouPHPTube数据库名称、用户和密码。(注意:应该使用主数据库,而不是编码器数据库。还要注意区分大小写。)并设置系统管理员密码。 &nbsp; 单击立即安装按钮,YouPHPTube应该安装成功。 现在我们需要删除/var/www/YouPHPTube/install/目录。 sudo rm/var/www/YouPHPTube/install/-r 单击转到主页按钮,您将看到YouPHPTube主页。 您可以单击左侧的下拉菜单,以管理员用户身份登录,并使用刚才设置的密码。 第7步:设置编码器 去https://tube.yourdomain.com/upload/.您将被重定向到编码器设置向导。如果没有自动重定向,则可以手动输入安装向导URL。 https://tube.yourdomain.com/upload/install/index.php/ 左侧将显示服务器是否满足YouPHPTube编码器的要求。 如果使用Nginx,可以忽略以下消息。 您的服务器是nginx/1.14.2,必须安装Apache。 如您所见,PHP最大执行时间应至少为7200,PHP内存限制应至少为512M。我们需要编辑php。ini文件来更改这两个值。如果使用ApacheWeb服务器,那么 sudo nano/etc/php/7.3/apache2/php。伊尼 如果将Nginx与PHP-FPM一起使用,则需要编辑PHP的FPM版本。ini文件。 sudo nano/etc/php/7.3/fpm/php。伊尼 找到下面两行。 最大执行时间=30内存限制=128M 更改值。 最大执行时间=7200内存限制=512M 请注意,如果稍后的视频编码中途停止,则需要增加最大执行时间,或升级CPU。 保存并关闭文件。重新启动Apache以使更改生效。 sudo systemctl重启apache2 如果将Nginx与PHP-FPM一起使用,则重新启动PHP-FPM。 sudo systemctl重启php7。3-fpm 现在刷新YouPHPTube编码器安装向导页面。你的服务器应该通过所有要求。现在,在右侧,您需要输入之前创建的YouPHPTubeEncoder数据库名称、用户和密码。注意区分大小写,并输入拖缆站点的管理员密码。 &nbsp; 单击立即安装按钮,将安装YouPHPTube编码器。 删除安装目录。 sudo rm/var/www/YouPHPTube/upload/install/-r 然后转到主页。 第8步:更改编码器URL 默认情况下,YouPHPTube使用公共编码器上传视频。要使用自己的编码器,请在YouPHPTube(而不是YouPHPTube encoder)中以管理员身份登录,然后从左侧管理面板转到管理面板。 转到设置-&gt;网站设置-&gt;高级配置。将编码器URL更改为https://tube.yourdomain.com/upload/.保存设置,清除缓存目录并生成新的站点地图。 现在退出并重新登录。如果你点击右上角的“视频和音频编码”按钮,你将被带到自己的编码器上传视频。需要注意的是,编码速度取决于服务器的CPU能力。 第9步:配置SMTP 要发送电子邮件(如帐户注册、密码重置等),需要配置SMTP服务器。如果您想使用自己的邮件服务器向客户发送电子邮件,请查看以下文章以设置自己的邮件服务器。 如何使用Modoboa在Debian 9上快速设置电子邮件服务器 如果你想使用SMTP中继服务,我推荐Mailjet。您可以按照下面的教程在YouPHPTube服务器上设置SMTP中继。 如何使用Mailjet在Debian上设置Postfix SMTP中继 启用TCP BBR 对于视频流服务器,建议按照本文中的说明在Linux内核中启用TCP BBR拥塞控制算法。(它是为Ubuntu编写的,但也适用于Debian 10 Buster。) 如何通过启用TCP BBR轻松提升Ubuntu 16.04/18.04网络性能 移动应用 你可以在谷歌Play Store或苹果商店的YPT Mobile上搜索YouPHPTube,下载免费的android应用程序或iOS应用程序。白标移动应用需要付费许可证。 故障排除 如果YouPHPTube主页未能加载一些CSS和JavaScript资源, 很可能您在Apache或Nginx虚拟主机文件中为web根目录添加了额外的正斜杠。而不是使用 DocumentRoot/var/www/YouPHPTube/ 你应该使用 DocumentRoot/var/www/YouPHPTube 如果编码器工作不正常,可以在/var/www/YouPHPTube/upload/videos/YouPHPTube上查看日志文件。日志 其他花絮 编码视频时,可以选择分辨率(低分辨率、SD分辨率、HD分辨率)。如果您将YouPHPTube用作个人视频流网站,我建议您选择高清分辨率,这样可以减少编码时间并节省磁盘空间。如果已经将视频编码为所有3种分辨率,则可以转到YouPHPTube视频目录(/var/www/YouPHPTube/videos),删除低分辨率和SD分辨率的视频。 cd/var/www/YouPHPTube/videos/sudo rm*Low。mp4 sudo rm*SD。mp4 如何从视频网站下载所有视频 您可以使用youtube dl命令行实用程序下载所有视频。首先,你需要进入YouPHPTube仪表板,然后进入视频列表页面并向下滚动到底部,单击下载你的视频列表(permalink.txt文件)按钮。您将看到所有视频的URL列表。 接下来,打开一个终端,用文本编辑器创建一个txt文件,从网页复制URL并粘贴到文件中。然后可以运行以下命令下载视频。替换视频列表。使用您自己的文件名。 youtube dl-视频列表。txt 收尾 我希望本教程能帮助您在Debian 10 Buster服务器上安装YouPHPTube。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:347
  • 在Debian 10 Buster上设置OpenStreetMap(OSM)平铺服务器

    OpenStreetMap(OSM)是一个用户贡献的、可自由编辑的世界地图。你可以把它看作是谷歌地图的开源和自托管替代品。本教程将向您展示如何在Debian 10上构建自己的OpenStreetMap tile服务器,这样您就不必使用专有的地图服务。 OpenStreetMap功能 OpenStreetMap的数据覆盖了全世界,因此可以方便地支持任何国家或每个国家的用户。 OpenStreetMap每天每小时每分钟都会更新,您可以实时获得这些更新。 OpenStreetMap数据是免费和开放的,不收取订阅费和页面浏览费。 OpenStreetMap数据丰富而详细,包含大量与地面人员相关的数据——收集数据的人员。 先决条件/硬件要求 所需的RAM和磁盘空间取决于要使用哪个国家的地图。例如 英国地图至少需要12G内存和100GB磁盘空间。 整个行星地图至少需要32G RAM和1TB SSD(固态驱动器)。用旋转硬盘来绘制整个地球地图是不可行的。 如果要在web浏览器中预渲染分幅以加快地图加载速度,则需要更多磁盘空间,这是强烈建议的。查看此磁贴磁盘使用情况页面,查看预渲染磁贴需要多少磁盘空间。例如,如果要为行星地图预渲染从缩放级别0到缩放级别15的平铺,则需要额外的460 GB磁盘空间。 另外需要注意的是,将大型地图数据(如整个地球)导入PostgreSQL数据库需要很长时间。考虑添加更多的RAM,特别是使用SSD,而不是旋转硬盘来加速导入过程。 如果你打算主持整个世界地图,我建议你从康塔博购买超大VPS,康塔博以 10核CPU 60 GB内存 1.6 TB英特尔Optane SSD 每月只需26.99欧元。 第一步:升级软件 在服务器上进行任何主要工作之前,更新服务器软件始终是一种好的做法。通过SSH登录服务器并运行以下命令。 sudo-apt更新;sudo-apt升级 如果遇到以下错误, perl:警告:退回到备用语言环境(“en_US.UTF-8”)。perl:警告:设置区域设置失败。perl:警告:请检查您的区域设置:LANGUAGE=(unset)、LC_ALL=(unset)、LC_MONETARY=“zh_CN.UTF-8”、LC_ADDRESS=“zh_CN.UTF-8”、LC_TELEPHONE=“zh_CN.UTF-8”、LC_NAME=“zh_CN.UTF-8”、LC_IDENTIFICATION=“zh_CN.UTF-8”、LC_NUMERIC=“zh_CN.UTF-8”、LC_PAPER=“zh_CN.UTF-8”,LANG=“en_US.UTF-8”支持并安装在您的系统上。perl:警告:退回到备用语言环境(“en_US.UTF-8”)。 这意味着您的本地计算机正在尝试将locale环境变量发送到debian VPS,但debian没有安装locale。要解决此问题,请编辑SSH守护程序配置文件。 sudo nano/etc/ssh/sshd_config 向下滚动到最后,您将看到下面一行,它告诉SSH守护进程从SSH客户端接受环境变量。 接受朗信用证_* 将其更改为以下内容,使SSH守护进程不接受环境变量。 接受号 保存并关闭文件。然后重启SSH守护进程。 sudo systemctl重启ssh 注销并重新登录。您将不再看到区域设置错误。 第2步:安装PostgreSQL数据库服务器和PostGIS扩展 我们将使用PostgreSQL存储地图数据。PostGIS是PostgreSQL的地理空间扩展。运行以下命令来安装它们。 sudo apt安装postgresql postgresql contrib postgis postgresql-11-postgis-2.5 PostgreSQL数据库服务器将自动启动并侦听127.0.0.1:5432。安装过程中将在操作系统上创建postgres用户。它是PostgreSQL数据库服务器的超级用户。默认情况下,该用户没有密码,也不需要设置密码,因为您可以使用sudo切换到postgres用户并登录到PostgreSQL server。 sudo-u postgres-i 现在可以创建PostgreSQL数据库用户osm。 createuser osm 然后创建一个名为gis的数据库,同时让osm成为数据库的所有者-UTF8指定数据库中使用的字符编码方案为UTF8。 createdb-E UTF8-O osm gis 接下来,为gis数据库创建postgis和hstore扩展。 psql-c“创建扩展postgis-d gis psql-c“创建扩展存储-三维地理信息系统 将osm设置为表所有者。 psql-c“将表空间参考系统所有者更改为osm-三维地理信息系统 退出postgres用户。 出口 在操作系统上创建osm用户,以便平铺服务器可以作为osm用户运行。以下命令将创建一个没有密码的系统用户。 sudo adduser——系统osm 第3步:下载地图样式表和地图数据 切换到osm的主目录。 cd/home/osm/ 使用git将最新的CartoCSS地图样式表下载到osm用户的主目录。 sudo apt安装git git克隆https://github.com/gravitystorm/openstreetmap-carto.git 如果在运行上述命令时看到“权限被拒绝”错误,则可以使用以下命令授予权限。用真实用户名替换用户名。 sudo apt install acl sudo setfacl-R-mu:username:rwx/home/osm/ 接下来,运行以下命令以PBF(ProtoBufBinary)格式下载整个行星(50G)的地图数据。 wget-chttp://planet.openstreetmap.org/pbf/planet-latest.osm.pbf 请注意openstreetmap的下载速度。org当前限制为2048kb/s。您可以从另一个镜像下载植物地图,如 wget-chttps://download.bbbike.org/osm/planet/planet-latest.osm.pbf 如果你想要一张各个国家/州/省/市的地图,请访问http://download.geofabrik.de.还有,自行车。org以不同的格式提供了全球200多个城市和地区的摘录。例如,使用以下命令下载英国地图数据(1.1G)。 wget-chttp://download.geofabrik.de/europe/great-britain-latest.osm.pbf 第4步:优化PostgreSQL Server性能 导入过程可能需要一些时间。为了加快这个过程,我们可以调整一些PostgreSQL server设置以提高性能。编辑PostgreSQL主配置文件。 sudo nano/etc/postgresql/11/main/postgresql。形态 首先,我们应该更改共享缓冲区的值。默认设置为: 共享缓冲区=128MB 这个太小了。经验法则是将其设置为总RAM的25%(不包括交换空间)。例如,我的VPS有60G RAM,所以我将其设置为: 共享缓冲区=15GB 找到下面这行。 #工作_内存=4MB#维护_工作_内存=64MB 同样,该值太小。我使用以下设置。 工作记忆=1GB维护记忆=8GB工作记忆=8GB 然后找到下面一行。 #有效缓存大小=4GB 如果你像我一样有很多RAM,你可以为有效的缓存大小设置一个更高的值,比如20G。 有效缓存大小=20GB 保存并关闭文件。重新启动PostgreSQL以使更改生效。 sudo systemctl重启postgresql 默认情况下,PostgreSQL会尝试在RAM中使用巨大的页面。然而,Linux默认情况下不会分配巨大的页面。检查PostgreSQL的进程ID。 sudo head-1/var/lib/postgresql/11/main/postmaster。pid 样本输出: 7031 然后检查该进程ID的峰值。 grep^VmPeak/proc/7031/status 样本输出: 峰值:16282784 kB 这是PostgreSQL将使用的峰值内存大小。现在检查Linux中巨大页面的大小。 cat/proc/meminfo | grep-i巨大 样本输出: AnonHugePages:0 kB ShmemHugePages:0 kB HugePages_总计:0 HugePages_免费:0 HugePages_Rsvd:0 HugePages_剩余:0 HugePages大小:2048 kB Hugetlb:0 kB 我们可以计算出我们需要多少巨大的页面。将VmPeak值除以巨大页面的大小:16282784KB/2048KB=7950。编辑/etc/sysctl。conf文件。 sudo nano/etc/sysctl。形态 添加以下行以分配7950个大页面。 虚拟机。nr_hugepages=7950 保存并关闭文件。然后应用更改。 sudo sysctl-p 如果你再次查看meminfo, cat/proc/meminfo | grep-i巨大 我们可以看到有7950个巨大的页面可用。 AnonHugePages:0 kB ShmemHugePages:0 kB HugePages_总计:7950 HugePages_免费:7950 HugePages_Rsvd:0 HugePages_剩余:0 HugePages大小:2048 kB Hugetlb:16281600 kB 重新启动PostgreSQL以使用大型页面。 sudo systemctl重启postgresql 在远程服务器上使用屏幕 由于导入过程可能需要很长时间,并且您的计算机可能已断开与Internet的连接,因此建议使用screen实用程序使会话保持活动状态。Debian 10服务器上的安装屏幕: sudo apt安装屏幕 然后启动屏幕: 屏幕 第一次启动时,您将看到一个介绍文本,只需按Enter键即可结束。然后你就可以像往常一样运行命令了。 步骤5:将地图数据导入PostgreSQL 要导入地图数据,我们需要安装osm2pgsql,将OpenStreetMap数据转换为支持postGIS的PostgreSQL数据库。 sudo apt安装osm2pgsql 向postgres用户授予权限。 sudo setfacl-R-mu:postgres:rwx/home/osm/ 切换到postgres用户。 sudo-u postgres-i 运行以下命令将地图样式表和地图数据加载到gis数据库中。最新取代英国。奥斯曼。pbf与您自己的地图数据文件。 osm2pgsql--slim-dGIS--hstore--multi-geometry--number processs 10--tag transform script/home/osm/openstreetmap carto/openstreetmap carto。lua——style/home/osm/openstreetmap carto/openstreetmap carto。款式-C 32000/家居/osm/英国最新款。奥斯曼。pbf 哪里 --苗条模式:在苗条模式下运行,而不是在正常模式下运行。如果希望将来使用OSM更改文件(OSC)更新地图数据,则需要此选项。 -d gis:选择数据库。 --hstore:将不带列的标记添加到PostgreSQL表的另一个hstore(key/value)列中 --多重几何图形:在postgresql表中生成多重几何图形特征。 --样式:指定样式文件的位置 --进程数:服务器上的CPU核心数。我有10个。 -C标志以兆字节为单位指定缓存大小。它应该是你机器上可用内存的70%左右。缓存大小越大,导入速度越快。例如,我的服务器有60GB的空闲RAM,所以我可以指定-C 32000。请注意,PostgreSQL将需要用于共享缓冲区的RAM。使用此公式计算缓存大小应该有多大:(总RAM-PostgreSQL共享_缓冲区)*70% 最后,需要指定地图数据文件的位置。 命令输出: 如果要导入完整的行星地图数据,请使用--drop选项和--flat nodes选项来提高导入速度。请注意--flat nodes选项不适用于小贴图。 osm2pgsql--slim-dGIS--drop--flat nodes/home/osm/nodes。cache--hstore--multi-geometry--number processs 10--tag transform script/home/osm/openstreetmap carto/openstreetmap carto。lua——style/home/osm/openstreetmap carto/openstreetmap carto。款式-C 32000/家居/osm/planet最新款式。奥斯曼。pbf 在导入过程中,RAM的使用将逐渐增加。 现在,您可能不需要在服务器上执行其他操作。由于您使用的是Screen,所以可以按Ctrl+A,释放这些键,然后按D键从当前屏幕会话中分离。您将看到如下消息。 [与32113.pts-1.buster分离] 这告诉我之前的屏幕会话ID是32113。您可以从SSH会话中注销,甚至可以关闭计算机。别担心,OSM导入过程仍在运行。当需要返回并检查导入进度时,请将SSH连接到服务器并运行以下命令以获取上一个屏幕会话ID。 屏幕-ls 样本输出: 屏幕显示:32113。pts-1。buster(2020年5月19日03:45:29下午)(已分离)1个插座插入/运行/屏幕/S-linuxbabe。 然后可以重新连接到上一个屏幕会话。 屏幕-r 32113 这样你就能继续工作了。导入完成后,将gis数据库的所有权限授予osm用户。 psql-c“将模式公共中所有表的所有权限授予osm-三维地理信息系统 退出postgres用户。 出口 注意:如果osm2pgsql导入尚未完成,请不要继续执行步骤6。 第6步:安装mod_tile和Renderd mod_tile是一个Apache模块,需要为tiles提供服务,renderd是渲染OpenStreetMap tiles的渲染守护进程。默认的Debian Buster存储库不包括mod_tile和renderd,因此我们需要编译源代码。 首先,安装构建依赖项。 sudo apt安装git autoconf libtool libmapnik dev apache2 dev 然后从Github克隆存储库。 git克隆https://github.com/openstreetmap/mod_tile.gitcd mod_瓷砖/ 编辑一个文件。 纳米debian/compat 默认情况下,兼容性级别设置为7。但是,您应该使用兼容性级别9,所以将数字7更改为9。保存并关闭文件。 然后编辑另一个文件。 nano debian/changelog 找到第一行。 libapache2 mod tile(0.4-12~精度2)精确;紧急程度=低 将其更改为以下内容。0.4-12应改为0.4.12,精度2应改为buster。 libapache2 mod tile(0.4.12~buster)精确;紧急程度=低 保存并关闭文件。然后编译源代码包。 /自动发电。sh sudo dpkg建筑包-加州大学-美国 现在将有两个。deb包在上层目录中。用apt安装它们。 光盘sudo-apt-install/libapache2-mod-tile_0.4.12~buster_amd64。黛布/renderd_0.4.12~buster_amd64。黛布 在安装过程中,它将安装Apache web服务器,并询问您是否希望在Apache配置中启用mod_tile。选择Yes并按Enter键。这将为mod_tile(/etc/apache2/sites available/tileserver_site.conf)创建一个Apache配置文件。 渲染守护进程将自动启动,如下所示: systemctl状态呈现 第7步:生成Mapnik样式表 安装所需的软件包。 sudo apt install curl解压gdal bin mapnik utils libmapnik dev python3 pip python3-psycopg2 我们还需要使用以下命令从上游存储库安装nodejs和npm。 curl-sLhttps://deb.nodesource.com/setup_12.x| sudo-E bash-sudo apt get install-y nodejs 然后用npm安装carto软件包。 sudo npm安装-g carto 安装yaml Python模块。 sudo-H pip3安装pyyaml 切换到postgres用户。 sudo-u postgres-i 将Cd放入carto style目录。 cd/home/osm/openstreetmap carto/ 获取形状文件。 脚本/获取外部数据。py 如果在运行上述命令时遇到以下错误消息,则说明您存在DNS问题。只需等待几分钟,然后再次运行Python脚本。 未能建立新连接:[Errno-3]名称解析暂时失败 现在使用carto map样式表编译器构建Mapnik XML样式表。 carto项目。mml&gt;风格xml 将gis数据库的所有权限授予osm用户。 psql-c“将模式公共中所有表的所有权限授予osm-三维地理信息系统 退出postgres用户。 出口 第8步:安装字体 您需要安装ttf dejavu软件包。 sudo apt安装ttf dejavu 要显示非拉丁字符,请安装以下软件包。 sudo apt安装字体noto cjk字体noto cjk额外字体noto提示字体noto未连接ttf unifont 步骤9:配置renderd 编辑渲染配置文件。 sudo nano/etc/renderd。形态 在[renderd]部分,根据服务器上的CPU内核数更改线程数。 线程数=10 在[default]部分,将XML和HOST的值更改为以下值。请注意,以分号(;)开头的行这些都是评论。 XML=/home/osm/openstreetmap carto/style。xml HOST=tile。你的领域。通用域名格式 在[mapnik]部分,将plugins_dir的值更改为以下值。 plugins_dir=/usr/lib/mapnik/3.0/input/ 您可以使用以下命令打印默认的输入插件目录。 mapnik config——输入插件 如果要显示非拉丁字符,最好将字体设置更改为以下内容。 font_dir=/usr/share/fonts/truetype font_dir_recurse=true 保存并关闭文件。然后编辑init脚本文件 sudo nano/etc/init。d/renderd 找到下面这行。 RUNASUSER=www数据 将用户更改为osm。这是从PostgreSQL数据库加载地图数据所必需的。 RUNASUSER=osm 还要设置renderd配置文件的路径。 DAEMON_ARGS=“-c etc/renderd.conf” 保存并关闭文件。将osm设置为/var/lib/mod_tile/目录的所有者,该目录将保存渲染的tile文件。 sudo chown osm/var/lib/mod_tile/-R 然后重新启动renderd服务。 sudo systemctl守护进程重新加载sudo systemctl restart renderd 你需要查看renderd的日志。 sudo journalctl-欧盟趋势 确保renderd在重启后不会在日志中产生任何错误,否则地图将不会显示。 第10步:配置Apache 编辑OSM虚拟主机文件。 sudo nano/etc/apache2/sites available/tileserver_site。形态 将服务器名更改为您自己的域名,如tile。你的领域。通用域名格式。您还需要为此子域创建DNS记录。 服务器名互动程序。你的领域。通用域名格式 保存并关闭文件。重启Apache。 sudo systemctl重启apache2 然后在web浏览器地址栏中键入 瓦片你的领域。com/osm/0/0/0。巴布亚新几内亚 你应该看到世界地图的瓷砖。恭喜!您刚刚成功构建了自己的OSM磁贴服务器。 如果已启用UFW防火墙,请确保使用以下命令打开端口80和443。 sudo ufw允许80443/tcp 如果您看到404 not found错误,只需等待几分钟,在浏览器中刷新页面,它应该能够加载世界地图的平铺。如果仍然无法加载,则重新启动renderd服务(sudo systemctl restart renderd)。 第11步:显示平铺的网络地图 平铺网络地图在OpenStreetMap术语中也称为slippy地图。有两个免费的开源JavaScript地图库可用于tile服务器:OpenLayer和传单。传单的优点是使用简单,而且地图便于移动。 露天层 要使用OpenLayer显示你的slippy地图,请从OpenLayer下载JavaScript和CSS。组织并将其解压缩到webroot文件夹。 cd/var/www/sudo wgethttps://github.com/openlayers/openlayers/releases/download/v5.3.0/v5.3.0.zipsudo解压v5。3.0.拉链 接下来,创建索引。html文件。 sudo nano/var/www/index。html 在文件中粘贴以下HTML代码。替换红色文本,并根据需要调整经度、纬度和缩放级别。 &lt;!DOCTYPE html&gt&书信电报;html&gt&书信电报;头&gt&书信电报;meta charset=“UTF-8”大于&书信电报;标题&gt;无障碍地图&lt/标题&gt&书信电报;link rel=“stylesheet”href=”http://tile.your-domain.com/v5.3.0/css/ol.css“type=“text/css”&gt;&lt;script src=”http://tile.your-domain.com/v5.3.0/build/ol.js“&gt;&lt;/script&gt;&lt;style&gt;a.skipling{位置:绝对;剪辑:rect(1px,1px,1px,1px);填充:0;边框:0;高度:1px;宽度:1px;溢出:隐藏;}”a、 skiplink:focus{clip:auto;height:auto;width:auto;background color:#fff;padding:0.3em;}#地图:焦点{轮廓:#4A74A8固体0.15em;}&lt/风格&gt&lt/头&gt&书信电报;车身&gt&书信电报;a class=“skipling”href=“#map”&gt;转到地图&lt/a&gt&书信电报;div id=“map”class=“map”tabindex=“0”&gt&lt/部门&gt&书信电报;按钮id=“缩小”&gt;缩小&lt/按钮&gt&书信电报;按钮id=“放大”&gt;放大&lt/按钮&gt&书信电报;脚本&gt;var map=新ol。Map({layers:[new ol.layer.Tile({source:new ol.source.OSM({url:'http://tile.your-domain.com/osm/{z} /{x}/{y}。png'})}),目标:'map',控件:ol。控制默认值({attributeoptions:/**@type{olx.control.attributeoptions}*/({collapsable:false})),视图:new ol。视图({center:[244780.245088823557386452.183179816],zoom:5});文件getElementById(“缩小”)。onclick=function(){var view=map.getView();var zoom=view.getZoom();view.setZoom(zoom-1);};文件getElementById(“放大”)。onclick=function(){var view=map.getView();var zoom=view.getZoom();view.setZoom(zoom+1);}&lt/脚本&gt&lt/车身&gt&lt/html&gt; 保存并关闭文件。现在你可以通过在浏览器地址栏中输入你的子域来查看你的拖拉地图。 瓦片你的领域。通用域名格式 或 瓦片你的领域。com/index。html 传单 要使用Leftlet显示slippy地图,请从leftletjs下载JavaScript和CSS。com并将其解压缩到webroot文件夹。 cd/var/www/sudo wgethttp://cdn.leafletjs.com/leaflet/v1.7.1/leaflet.zipsudo解压传单。拉链 接下来,创建索引。html文件。 sudo nano/var/www/index。html 在文件中粘贴以下HTML代码。替换红色文本,并根据需要调整经度、纬度和缩放级别。 &lt;html&gt&书信电报;头&gt&书信电报;meta charset=“UTF-8”大于&书信电报;标题&gt;我的第一个osm&lt/标题&gt&书信电报;link rel=“stylesheet”type=“text/css”href=“传单.css”/&gt&书信电报;script type=“text/javascript”src=“ployate.js”&gt&lt/脚本&gt&书信电报;风格&gt#地图{宽度:100%;高度:100%}&lt/风格&gt&lt/头&gt&书信电报;车身&gt&书信电报;div id=“map”&gt&lt/部门&gt&书信电报;脚本&gt;var map=L.map('map')。setView([55,8],5);蒂莱莱耶http://tile.your-domain.com/osm/{z} /{x}/{y}。png',{maxZoom:18})。addTo(地图)&lt/脚本&gt&lt/车身&gt&lt/html&gt; 保存并关闭文件。现在,您可以通过在浏览器中键入服务器IP地址来查看拖沓的地图。 瓦片你的领域。通用域名格式 或 瓦片你的领域。com/index。html 步骤12:预渲染瓷砖 动态渲染平铺将增加在web浏览器中加载地图的时间。要预渲染平铺而不是动态渲染,请使用以下render_list命令。使用-z和-z标志指定缩放级别,并根据服务器上的CPU内核数替换线程数。Render_list通过向渲染守护进程发送请求来渲染贴图分幅列表。预渲染的磁贴将缓存在/var/lib/mod_tile目录中。 render_list-m default-a-z 0-z 19--num threads=10 如果以后更新了贴图数据,可以使用--force选项再次预渲染所有分片。 render_list-m default-a-z 0-z 19--num threads=10--force 要在背景中渲染贴图分幅,请添加&amp;结尾的符号。 render_list-m default-a-z 0-z 19--num threads=10&amp; 现在你可以关闭终端窗口了。要检查呈现进度,请打开另一个SSH会话,然后运行以下命令。 sudo journalctl-欧盟趋势 上面的命令将显示renderd服务的最新日志。以下几行显示我的OSM服务器现在正在以缩放级别12渲染地图分幅。 renderd[20838]:调试:开始平铺默认值12 1008-1015 4056-4063,新metatile renderd[20838]:渲染投影坐标12 1008 4056-&gt-10175297.205328 |-19724422.274944-10097025.688364 |-19646150.757980到一个8 x 8平铺渲染[20838]:调试:在0.799秒内完成平铺默认12 1008-1015 3984-3991渲染[20838]:调试:将协议版本2的渲染命令(3默认12/1008/3984)发送到fd 18渲染[20838]:调试:使用协议版本2 renderd[20838]获得传入请求:调试:获得命令RenderBulk fd(18)xml(默认),z(12),x(1008),y(4064),mime(图像/png),选项()渲染[20838]:调试:开始平铺默认值12 1008-1015 4064-4071,新metatile渲染[20838]:渲染投影坐标12 1008 4064-&gt-10175297.205328 |-19802693.791908-10097025.688364 |-19724422.274944至8 x 8瓷砖 步骤13:启用HTTPS 为了加密HTTP流量,我们可以从Let's encrypt获得并安装免费的TLS证书。首先,在Debian 10上安装Let's Encrypt客户端(certbot)。 sudo apt安装certbot 因为我们使用的是ApacheWeb服务器,所以我们还需要安装Apache插件。 sudo apt安装python3 certbot apache 然后运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--stalke ocsp--must stalke--email[email ;protected]-d tile。你的领域。通用域名格式 安装证书后,刷新网页,您将在地址栏中看到一个锁。 如果你在Firefox地址栏中看到一个黄色的三角形,这意味着tile URL仍在使用HTTP。你需要编辑索引。html文件,并使用以下命令将所有HTTP协议替换为HTTPS。 sudo sed-i's/http/https/g'/var/www/index。html 步骤14:启用HTTP2 为了进一步提高映射加载性能,可以启用HTTP2协议。首先,需要启用HTTP2模块。 sudo a2enmod http2 然后打开SSL虚拟主机文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在打开后放置以下指令&lt;VirtualHost*:443&gt;标签 协议h2 http/1.1 保存并关闭文件。然后重启Apache,使更改生效。 sudo systemctl重启apache2 使用HTTP Referrer标头限制对OSM磁贴服务器的访问 默认情况下,任何人都可以使用OpenLayer或传单创建一个带有tile服务器URL的滑动地图。要限制对tile服务器的访问,请编辑Apache虚拟主机文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在&lt;VirtualHost&gt;标签。 &lt;位置/osm&gt;SetEnvIf Referer example/。com trusted_referer Order deny,allow deny from all allow from env=trusted_referer&lt/地点&gt; 上面的代码检查HTTP referer头是否包含您自己的域。否则,将拒绝访问/osm目录。反斜杠用于转义点字符。要将多个主机名添加为受信任的引用程序,请使用以下语法。 SetEnvIf Referer(example/.com | www/.example/.com | map/.example/.com)可信的_Referer 保存并关闭文件。然后测试语法。 sudo apache2ctl-t 如果语法正确,请重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开root用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&amp;systemctl重新加载apache2 不同主机上的PostgreSQL数据库和Web服务器 如果PostgreSQL和Apache web服务器位于不同的主机上,则需要编辑该项目。Apache主机上的mml文件。 nano/home/osm/openstreetmap-carto-4.20.0/project。嗯 找到以下几行: osm2pgsql:&amp;osm2pgsql类型:“postgis”dbname:“gis”键字段:“几何体”字段:“方式”范围:“-20037508,-200375082003750820037508” 指定PostgreSQL数据库服务器的IP地址。 osm2pgsql:&amp;osm2pgsql类型:“postgis”主机:“10.0.0.2”数据库名:“gis”键字段:“几何体”字段:“方式”范围:“-20037508,-200375082003750820037508” 保存并关闭文件。然后使用carto map样式表编译器构建Mapnik XML样式表。 carto项目。mml&gt;风格xml 在PostgreSQL数据库服务器上,编辑主配置文件。 sudo nano/etc/postgresql/11/main/postgresql。形态 添加以下行,将PostgreSQL设置为在所有接口上侦听。 听_addresses='*' 保存并关闭文件。然后编辑PostgreSQL客户端身份验证配置文件。 sudo nano/etc/postgresql/11/main/pg_hba。形态 在文件末尾添加以下行,以允许osm用户从Apache主机登录。将10.0.0.1替换为Apache主机的IP地址。 主机gis osm 10.0.0.1/32信任 保存并关闭文件。然后重新启动PostgreSQL。 sudo systemctl重启postgresql 在Apache主机上重新启动渲染守护程序。 sudo systemctl重新启动renderd 你需要查看renderd的日志。确保renderd不会在日志中产生任何错误,否则地图将不会显示。 sudo journalctl-欧盟趋势 还应限制对PostgreSQL数据库服务器端口5432的访问。例如,您可以使用以下UFW命令只允许Apache主机的IP地址。 sudo ufw允许从10.0.0.1进入任何端口5432 下一步 我希望本教程能帮助您在Debian 10上设置OpenStreetMap tile服务器。您可能还需要设置Namingm地理编码服务器以提供搜索功能。 在Debian 10上设置OSM Namingm地理编码服务器 和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:311
  • 从命令行将Debian 10 Buster升级为Debian 11 Bullseye

    Debian 11,代号为BulLSEYE,于2021年8月14日发布。本教程将向您展示如何从命令行将Debian 10升级到Debian 11。您可以在Debian 10桌面或Debian 10服务器上学习本教程。与每个Debian版本一样,Debian 11将支持5年。代号“斗牛士”是以《玩具总动员》电影中的玩具马命名的。 升级前的建议 如果你在Debian 10桌面上安装了专有英伟达驱动程序,我建议在升级之前删除它,因为NVIDIA驱动程序在我试图把Debian BuST升级到BulLeSye时引起了包冲突。 sudo-apt-remove*nvidia* 在进行升级之前,您可以使用Clonezilla备份您的计算机。如果升级失败,您可以轻松恢复操作系统。操作系统上的所有东西,包括软件和文件都将完好无损。 如何使用Clonezilla Live备份硬盘 如果您试图升级Debian VPS(虚拟专用服务器),可以使用托管提供商的快照功能创建服务器的快照。 如果您正在使用笔记本电脑,请连接电源。 让SSH会话保持活动状态 如果您使用SSH登录Debian服务器,那么最好使用screen实用程序保持OpenSSH会话的活动状态。Debian 10服务器上的安装屏幕: sudo apt安装屏幕 然后启动屏幕: 屏幕 在第一次启动时,您将看到介绍文本,只需按Enter键即可结束。然后你就可以像往常一样运行命令了。 还建议在服务器上的/etc/ssh/sshd_config文件底部添加以下行,以保持ssh会话的活动状态。 ClientAliveInterval 60 保存并关闭文件。然后重启SSH守护进程。 sudo systemctl重启ssh 使用命令行将Debian 10 Bullseye升级为Debian 11 Bullseye 您可以使用命令行升级Debian desktop或无头服务器。要升级到Debian 11,请使用以下命令切换到root用户。您需要输入root用户的密码。 苏- 如果您有sudo用户,还可以使用以下命令切换到root。您需要输入sudo用户的密码。 sudo su- 然后使用以下两个命令更新现有软件。 apt更新apt升级 如果在运行上述命令时安装了新内核,则需要重新启动系统以继续升级过程。要重新启动Debian,请运行以下命令。(请记住重新启动后再次切换到root用户。) 重启 接下来,我们需要编辑源代码。使用命令行文本编辑器(如Nano)列出文件。 nano/etc/apt/sources。列表 将buster的所有实例更改为bullseye。如果不喜欢逐个更改,则可以退出Nano文本编辑器(按Ctrl+X)并运行以下命令进行批量替换。 sed-i's/buster/bullseye/g'/etc/apt/sources。列表 安全套件现在名为bullseye security,因此运行以下命令替换旧套件名称。 sudo sed-i's/debian security bullseye//updates/debian security bullseye security/g'/etc/apt/sources。列表 然后,我们需要使用以下命令禁用第三方存储库,这将在每行的开头添加一个#字符。在/etc/apt/sources中列出文件。列表d/目录。 sed-i's/^/#/'/etc/apt/sources。列表d/*。列表 接下来,更新软件源并将软件升级到bullseye存储库中提供的最新版本。这一步叫做最小升级。 apt更新apt升级 如果在升级过程中显示apt listchanges,您可以按Q键返回主屏幕。 升级软件包时,系统会询问您是否希望在没有询问的情况下重新启动服务。如果要手动重启服务,请选择“否”。本教程选择“是”,因为my Debian box没有需要公众访问的服务。 还可能会询问您是否要安装新版本的配置文件。为了安全起见,我总是选择“否”(只需按Enter键)。(新配置文件将以相同的文件名保存,但扩展名为.ucf dist或.dpkg dist,您可以在升级后进行检查。) 完成最小升级后,运行以下命令开始完全升级。 apt区升级 现在,您可以从Debian系统中删除过时/不需要的软件包。 apt自动删除apt清除 最后,重新启动系统。 重启 检查你的Debian版本。 lsb_发布-a 你应该看到下面的文字。 没有可用的LSB模块。分销商ID:Debian描述:Debian GNU/Linux 11(bullseye)发行版:11代码名:bullseye 恭喜!您已成功升级到Debian 11 Bullseye。 下一步 我希望本教程能帮助您将Debian 10升级到Debian 11。你也可以参加Debian发布派对来庆祝它!和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:270
  • 在Debian 10 Buster上设置Apache Guacamole远程桌面

    本教程将向您展示如何在Debian 10服务器上设置鳄梨酱远程桌面。GuaCAMOLE是由Apache软件基金会开发的一个免费的开源远程桌面网关。 鳄梨酱特色 它允许您从web浏览器访问远程桌面。不需要在客户端安装其他软件。 支持VNC、RDP、SSH和Kubernetes等标准协议。 VNC会话可以以图形方式记录。 使用CAS、OpenID Connect或SAML 2.0进行单点登录 唤醒局域网 轻松管理多个远程桌面会话。 支持TOTP双因素身份验证。 支持剪贴板(复制和粘贴)和通过SFTP传输文件。 支持音频输入和输出 还有更多。 鳄梨酱本身不是远程桌面协议。它是远程桌面和客户端之间的代理,因此可以在web浏览器中显示和控制远程桌面。 步骤1:从源代码构建鳄梨酱服务器 登录Debian 10服务器并安装依赖软件包。 sudo apt安装build essential libcairo2 dev libjpeg62 turbo dev libpng dev libtool bin libossp uuid dev libvncserver dev freerdp2 dev libssh2-1-dev libtelnet dev libwebsockets dev libpulse dev libvorbis dev libwebp dev libssl dev libpango1。0-dev libswscale dev libavcodec dev libavutil dev libavformat dev 下载最新稳定版本的鳄梨酱服务器。 wgethttp://mirror.cc.columbia.edu/pub/software/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz 提取档案。 tar-xvf鳄梨酱-server-1.2.0。焦油广州 切换到提取的目录。 cd鳄梨酱-server-1.2.0 配置构建环境。 ./configure--with init dir=/etc/init。D 然后编译鳄梨酱服务器。 sudo make 安装鳄梨酱服务器。 sudo make安装 更新已安装库的系统缓存。 sudo ldconfig 重新加载systemd,这样就可以找到安装在/etc/init中的Guacamole代理守护进程(Guacamole proxy daemon)服务。d/目录。 sudo systemctl后台程序重新加载 开始吃鳄梨酱。 sudo systemctl启动guacd 启动时启用自动启动。 sudo systemctl enable guacd 检查它的状态。 系统控制状态表 如你所见,它处于活动状态(正在运行)。 Guacd在127.0.0.1:4822上监听,如ss实用程序所示。 sudo ss-lnpt | grep guacd 第2步:安装鳄梨酱Web应用程序 鳄梨酱web应用程序是用Java编写的,所以我们需要安装一个Java Servlet容器,比如ApacheTomcat。 sudo apt安装tomcat9 tomcat9 admin tomcat9 common tomcat9 user Apache Tomcat将在端口8080上监听,如下所示: sudo ss-lnpt | grep java 如果有其他软件监听端口8080,那么Tomcat无法绑定到端口8080。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat(sudo systemctl restart tomcat9)。 接下来,下载鳄梨酱web应用程序。 wgethttps://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war 将文件移动到web应用程序目录(/var/lib/tomcat9/webapps),同时重命名文件(删除版本号)。 sudo mv鳄梨酱-1.2.0。war/var/lib/tomcat9/webapps/guacamole。战争 重启Tomcat和guacd。 sudo systemctl重启tomcat9 guacd 第3步:配置鳄梨酱 为鳄梨酱创建一个配置目录。 sudo mkdir/etc/鳄梨酱/ 创建一个配置文件。 sudo nano/etc/鳄梨酱/鳄梨酱。属性 在此文件中添加以下行。有些人可能会说不需要添加这些行,因为它们是默认值。我向您展示了一个基本配置,以便您可以在需要时对其进行自定义。 #guacamole代理的主机名和端口guacd主机名:localhost guacd端口:4822#身份验证提供程序类(验证用户/密码组合,如果使用提供的登录屏幕,则需要)身份验证提供程序:net。sourceforge。鳄梨酱。网基本的BasicFileAuthenticationProvider基本用户映射:/etc/guacamole/user mapping。xml 保存并关闭文件。Guacamole中的默认身份验证模块从XML文件:/etc/Guacamole/user mapping中读取用户名和密码。xml。在创建此文件之前,我们需要使用以下命令为您的密码生成MD5哈希。将_密码替换为首选密码。 echo-n您的|密码| openssl md5 样本输出: (标准数据)=1060b7b46a3bd36b3a0d66e0127d0517 接下来,创建用户映射XML文件。 sudo nano/etc/guacamole/user mapping。xml 添加以下行。这里我们指定后端将使用VNC(虚拟网络计算)协议。替换用户名和密码哈希。稍后我们将创建一个VNC密码。 &lt;用户映射&gt&lt;!——每用户身份验证和配置信息--&gt&书信电报;授权用户名=“您的首选用户名”密码=“1060b7b46a3bd36b3a0d66e0127d051”编码=“md5”&gt&书信电报;连接名称=“默认值”&gt&书信电报;协议&gt;vnc&lt/协议&gt&书信电报;param name=“hostname”&gt;localhost&lt/param&gt&书信电报;param name=“port”&gt;5901&lt/param&gt&书信电报;param name=“password”&gt;vnc_密码&lt/param&gt&lt/连接&gt&lt/授权&gt&lt/用户映射&gt; 保存并关闭文件。重启Tomcat和guacd。 sudo systemctl重启tomcat9 guacd 第4步:在Debian 10服务器上安装桌面环境 因为我们要设置一个远程桌面,所以我们需要一个桌面环境。在安装桌面环境之前,确保服务器有足够的RAM。有许多桌面环境。我发现轻量级XFCE桌面环境在VNC中运行良好,所以使用以下命令安装它。 sudo apt更新sudo apt安装xfce4 xfce4 goodies 在安装过程中,可能会要求您选择默认的显示管理器。这个选择无关紧要,因为在VNC会话中,您不会看到登录屏幕。 由于服务器上运行的是桌面环境,因此强烈建议您使用UFW之类的防火墙来限制访问,并仅向公众打开必要的端口。您可以阅读以下教程,了解如何在Debian上启用和使用UFW。 如何在Debian、Ubuntu、Linux Mint上使用UFW防火墙 步骤5:在Debian 10服务器上安装VNC服务器 Linux用户可以使用几种VNC服务器软件。我们将使用TigerVNC服务器,因为它最适合鳄梨酱。 sudo apt安装tigervnc独立服务器 运行以下命令以启动VNC服务器。 vncserver 当TigerVNC首次启动时,它会要求您设置VNC密码。请注意,密码不应超过8个字符。然后,您可以选择是否需要仅查看密码。 现在,您应该编辑/etc/guacamole/user映射。xml文件并更改VNC密码。然后重启Tomcat和Guad。 sudo systemctl重启tomcat9 guacd tigervnc独立服务器包附带一个文件/etc/X11/Xvnc会话,该会话告诉tigervnc在启动X服务器时启动X服务器。 TigerVNC服务器不附带任何systemd服务单元。为了在启动时启动,我们需要创建一个systemd服务单元。 sudo nano/etc/systemd/system/[电子邮件和#160;受保护] 在文件中添加以下行。用真实用户名替换用户名。 [Unit]Description=在=syslog之后为VNC启动X服务器的包装器。目标网络。target[Service]Type=forking User=username Group=username WorkingDirectory=/home/username ExecStartPre=-/usr/bin/vncserver-kill:%i&gt/开发/空2&gt&amp;1 ExecStart=/usr/bin/vncserver-depth 24-geometry 1280x800-localhost:%i ExecStop=/usr/bin/vncserver-kill:%i[Install]WantedBy=multi-user。目标 保存并关闭文件。停止当前的VNC服务器实例。 vncserver-kill:1 用systemd启动VNC服务器。 sudo systemctl start[电子邮件和#160;受保护] 启动时启用自动启动。 sudo systemctl启用[电子邮件和#160;受保护] 检查其状态: systemctl状态[电子邮件和#160;受保护] 如你所见,它处于活动状态(正在运行)。 现在TigerVNC服务器监听端口5901。 sudo ss-lnpt | grep vnc 步骤6:为鳄梨酱Web应用程序设置反向代理 Apache Tomcat正在监听端口8080。为了方便地访问Guacamole web应用程序,我们可以使用Apache或Nginx设置反向代理,以便最终用户能够使用域名访问web应用程序。它还允许我们轻松安装TLS证书来加密连接。 阿帕奇 如果您更喜欢使用Apache,那么从默认的Debian软件存储库安装Apache。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 然后为鳄梨酱创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/鳄梨酱。形态 在文件中添加以下行。更换鳄梨酱。实例使用你自己的域名。记住在DNS管理器中为子域创建A记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 &lt;虚拟主机*:80&gt;ServerName鳄梨酱。实例com ErrorLog${APACHE_LOG_DIR}/guacamole_error。log CustomLog${APACHE_log_DIR}/guacamole_访问。日志合并&lt;地点/&gt;要求所有授予的ProxyPasshttp://localhost:8080/guacamole/flushpackets=在ProxyPassReverse上http://localhost:8080/guacamole/&lt/地点&gt&书信电报;位置/websocket隧道&gt;需要所有授予的代理权限ws://localhost:8080/guacamole/websocket tunnel代理权限ws://localhost:8080/guacamole/websocket tunnel&lt/地点&gt;标题始终未设置X帧选项&lt/VirtualHost&gt; 保存并关闭文件。测试语法。 sudo apachectl-t 如果Syntx正常,则启用此虚拟主机。 sudo a2ensite鳄梨酱。形态 重启Apache sudo systemctl重启apache2 现在,您可以通过鳄梨酱访问Apache鳄梨酱登录页面。实例通用域名格式。如果看到“无效请求”或类似的错误消息,则可能意味着Apache Tomcat无法绑定到端口8080,因为该端口已被服务器上的另一个进程占用。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat。 Nginx 如果您更喜欢使用Nginx,那么从默认的Debian软件存储库安装Nginx。 sudo apt安装nginx 为鳄梨酱创建服务器块文件。 sudo nano/etc/nginx/conf.d/guacamole。形态 在文件中添加以下行。更换鳄梨酱。实例使用你自己的域名。记住在DNS管理器中为子域创建A记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;服务器名guacamole.example.com;access_log/var/log/nginx/guac_access.log;error_log/var/log/nginx/guac_error.log;location/{proxy_passhttp://127.0.0.1:8080/guacamole/; 缓冲;proxy_http_版本1.1;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;代理设置头升级$httpU升级;代理设置头连接$httpU连接;代理_cookie_path/guacamole/;} 保存并关闭此文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在,您可以通过鳄梨酱访问Apache鳄梨酱登录页面。实例通用域名格式。如果看到“无效请求”或类似的错误消息,则可能意味着Apache Tomcat无法绑定到端口8080,因为该端口已被服务器上的另一个进程占用。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat。 启用HTTPS 为了在访问鳄梨酱web界面时加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d鳄梨酱。实例通用域名格式 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stapple ocsp--email[email ;protected]-d鳄梨酱。实例通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 您可以通过HTTPS访问鳄梨酱web界面。(https://guacamole.example.com). 登录后,您将能够使用远程桌面。 收尾 我希望本教程能帮助您在Debian 10服务器上设置Apache Guacamole远程桌面。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:348
  • 如何在Debian 10 Buster上安装Jellyfin媒体服务器

    本教程将向您展示如何在Debian 10服务器/桌面上安装Jellyfin media server。Jellyfin是一款免费的开源应用程序,允许您在一个漂亮的界面中组织电影、电视节目、音乐和照片,并在网络或互联网上将这些媒体文件传输到PC、平板电脑、手机、电视、Roku等设备上。Jellyfin可以安装在Linux、MacOS和Windows上。 水母特征 Jellyfin是Emby媒体服务器的分支。它包含许多与Plex和Emby相同的功能。 与Plex或Emby不同,Jellyfin是100%免费和开源的。没有广告,移动应用没有播放限制。(尽管iOS应用程序不能在后台播放视频。) 观看电视直播并设置自动录音,以扩展您的库。 自动从DVDB、MovieDB、OpenMovie数据库和烂番茄中获取艺术品、元数据。 支持DLNA。 可以安装可选插件以提供附加功能。 支持使用FFMpeg对视频编码/解码进行硬件加速。 还有更多。 在Debian 10上安装Jellyfin媒体服务器 Jellyfin不包括在默认的Debian存储库中,但它有自己的存储库。运行以下命令将Jellyfin存储库添加到Debian 10系统。 echo“deb[arch=$(dpkg——打印架构)] main“| sudo tee/etc/apt/sources.list.d/jellyfin.list 接下来,运行以下命令将Jeffyfin GPG密钥导入Debian系统,以便APT可以在安装期间验证包的完整性。 wget-O-https://repo.jellyfin.org/jellyfin_team.gpg.key| sudo apt按键添加- 由于该存储库使用HTTPS连接,我们还需要安装apt传输HTTPS和ca证书包。 sudo apt安装apt传输https ca证书 最后,在Debian系统上更新包索引并安装Jellyfin。 sudo apt更新sudo apt安装jellyfin 此命令还将安装3个其他软件包作为依赖项: jellyfin ffmpeg:用于视频转码。 jellyfin服务器:后端服务器。 jellyfin web:前端web界面。 现在安装了Jellyfin media server,我们可以通过以下方式检查其状态: 系统控制状态 正如你所见,它正在我的Debian 10系统上运行。(按q键恢复对终端的控制。) 如果Jellyfin媒体服务器未运行,可以通过以下方式启动: sudo systemctl启动果冻 Jellyfin媒体服务器初始设置 基于网络的管理界面可在8096端口获得。您可以通过以下URL访问Jellyfin web界面。 如果在远程Debian服务器上安装了Jellyfin,则需要使用Nginx或Apache设置反向代理才能访问web UI,本教程稍后将对此进行解释。 第一步是选择你喜欢的语言。 在下一个屏幕上,创建一个用户帐户。 现在可以添加库了。单击添加媒体库按钮。 选择内容类型(电影、音乐、电视节目等)和显示名称。 然后单击加号(+)按钮选择内容文件夹。 请注意,jellyfin用户需要对您的媒体目录具有读取和执行权限。例如,我的2T外部硬盘安装在root所有的/media/linuxbabe/下。不在root组中的用户无法访问它,所以我运行以下命令来授予用户jellyfin读取和执行权限。(我不建议使用chown或chgrp命令更改所有权。使用setfacl命令就足够了。) sudo setfacl-MU:jellyfin:rx/media/linuxbabe/ 您可能还需要分配对各个媒体目录的权限,如下所示。 sudo setfacl-mu:jellyfin:rx/media/linuxbabe/目录名 添加递归标志(-R)很有诱惑力,该标志赋予jellyfin对驱动器上每个文件和子目录的读取和执行权限。 sudo setfacl-R-mu:jellyfin:rx/media/linuxbabe/ 如果您的外部硬盘仅用于存储媒体文件,那么您可以这样做,但如果您的外部硬盘上有敏感文件,请不要这样做。 添加完媒体文件夹后,可以配置库设置。选择你的语言、国家等。 点击Ok和Next按钮。以后可以添加更多库。下一步允许您选择是否启用远程访问。我不建议启用本机远程访问方法,因为它不提供HTTPS加密,所以请取消选中这两个复选框。如果您需要远程访问,请阅读本文后面的如何设置反向代理。 单击下一步并完成按钮。最后,登录你的Jellyfin帐户。 重做初始设置 如果在初始设置中出错,可以重新开始。首先,编辑Jellyfin配置文件。 sudo nano/etc/jellyfin/system。xml 改变 &lt;IsStartupWizardCompleted&gt;真的&lt/IsStartupWizardCompleted&gt; 到 &lt;IsStartupWizardCompleted&gt;假&lt/IsStartupWizardCompleted&gt; 保存并关闭文件。然后重启果冻。 sudo systemctl重启果冻 现在访问localhost:8096/web,您将再次看到安装向导。 在哪里下载电影和电视节目 使用像Florge这样的洪流客户端。 了解如何从Usenet下载。 Usenet的优势 因为其他人看不到你下载的内容,所以它给了你更好的隐私。 超高速下载速度。 文件的保存时间通常比torrent文件长得多。例如,Newsdemon将文件存储4430天(超过12年),因此您可以以非常快的速度下载旧内容。 设置反向代理 因为它监听127.0.0.1:8096,所以Jellyfin Web界面只对来自同一台计算机的连接可用。为了能够从远程计算机访问Jellyfin Web界面,我们可以使用Nginx或Apache为Jellyfin设置反向代理。 Nginx Nginx是一个非常流行的web服务器和反向代理。如果您更喜欢使用Nginx,请运行以下命令进行安装。 sudo apt安装nginx 然后为Jellyfin创建一个服务器块文件。 sudo nano/etc/nginx/conf.d/jellyfin。形态 将以下内容添加到此文件。更换鱼翅。实例使用你自己的域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;服务器名jellyfin.example.com;访问日志/var/log/nginx/jellyfin.access;错误日志/var/log/nginx/jellyfin.error;设置$jellyfin 127.0.0.1;位置/{proxyu passhttp://127.0.0.1:8096; 代理设置头主机$Host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$方案;代理集头X转发协议$方案;proxy_set_header X-Forwarded-Host$http_Host;#当nginx代理在流媒体代理缓冲关闭时资源非常紧张时,禁用缓冲;}#/web的位置块-这纯粹是为了美观,所以/web/#!/可以工作,而不必转到/web/index。html/#!/地点~^/web/${#Proxy main Jellyfin traffic Proxy_pass http://$Jellyfin:8096/web/index.html/;Proxy_set_header Host$Host;Proxy_header X-Real-IP$remote_addr;Proxy_set_header X-Forwarded$Proxy_add_X_-Forwarded$Proto;Proxy_set_header X-Forwarded$scheme;Proxy_set_header X-Forwarded$Protocol$schemer X-Forwarded-Host$http_Host;}位置/套接字{#代理Jellyfin Websockets流量代理pass http://$127.0.0.1:8096;代理http version 1.1;代理set header Upgrade$http Upgrade;代理set header Connection“Upgrade”; 代理设置头主机$Host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$方案;代理集头X转发协议$方案;proxy_set_header X-Forwarded-Host$http_Host;}安全/XSS缓解标题添加标题X-Frame-Options“SAMEORIGIN”;添加_头X-XSS-Protection“1;模式=块”;添加标题X-Content-Type-Options“nosniff”;} 保存并关闭此文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在,您可以通过Jellyfin访问Jellyfin媒体服务器。实例通用域名格式。 阿帕奇 如果您更喜欢Apache而不是Nginx,那么使用以下命令安装ApacheWeb服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 然后为Jellyfin创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/jellyfin。形态 将以下配置放入该文件。更换鱼翅。实例com与您的实际域名。别忘了为这个子域创建DNS记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 &lt;虚拟主机*:80&gt;服务器名jellyfin。实例com错误文件404/404。html#HTTP代理ProxyPass/http://localhost:8096/ProxyPassReverse/http://localhost:8096/#Websocket代理SSLProxyEngine on&lt;位置/:/websockets/notifications&gt;ProxyPasswss://localhost:8096/:/websockets/notificationsProxyPassReversewss://localhost:8096/:/websockets/notifications&lt/地点&gt;标题始终未设置X帧选项&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite果冻。形态 重启Apache sudo systemctl重启apache2 现在,您可以使用域名Jellyfin访问Jellyfin媒体服务器。实例通用域名格式。 启用HTTPS 为了在您从外部访问Jellyfin服务器时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d jellyfin。实例通用域名格式 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d jellyfin。实例通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 您可以通过HTTPS访问Jellyfin web界面:https://jellyfin.example.com. 如何在Debian 10上升级Jellyfin 当新版本的Jellyfin media server问世时,您可以通过执行以下命令对其进行升级。 sudo apt更新sudo apt升级 然后重启果冻。 sudo systemctl重启果冻 故障排除 如果Debian服务器运行WireGuard VPN,您可能会在Jellyfin日志(sudo journalctl-eu Jellyfin)中看到以下错误。 [ERR]从10.0.0.102向239.255.255.250:1900系统发送套接字消息时出错。网插座。SocketException(0xFFFFFFFF):ai_标志的错误值 此错误意味着无法将消息从WireGuard接口发送到239.255.255.250,这是SSDP(简单服务发现协议)多播地址。这是因为您的WireGuard接口不允许访问IP地址。 要解决此问题,请编辑WireGuard接口配置文件。 sudo nano/etc/wireguard/你的界面。形态 查找AllowedIPs参数。我的像下面。 AllowedIPs=10.0.0.0/8 如您所见,VPN客户端只允许连接到10.0.0.0/8网络。现在添加239.255.255.250地址。 AllowedIPs=10.0.0.0/8239.255.255.250 保存并关闭文件。重新启动WireGuard。 sudo systemctl重启[电子邮件和#160;受保护] 重启果冻。 sudo systemctl重启果冻 再次查看Jellyfin日志(sudo journalctl-eu Jellyfin)。上述错误应该消失。 收尾 我希望本教程能帮助您在Debian 10上安装Jellyfin media server。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:760
  • 如何在Debian服务器/桌面上安装SABnzbd Usenet客户端

    SABnzbd是一个免费的开源和基于网络的Usenet客户端,用于在Usenet上下载二进制内容(图像、音频、视频、电子书等)。它是跨平台的,可用于Linux、BSD、macOS、UNIX、Windows、Synology、QNAP等。本教程将向您展示如何在Debian上安装SABnzbd。 SABnzbd功能 你可以通过网络浏览器从任何地方访问它。 响应迅速的网络界面。 支持多个Usenet服务器(提供程序)。 Android和iOS都提供移动应用程序 Sonar、Sickrage、Couch土豆和耳机等应用程序可以与SABnzbd集成,实现下载过程的自动化。 SABnzbd还可以读取和处理RSS提要,激活自定义脚本,并通过邮件、咆哮、徘徊、推送和推弹通知您。 NZB(Newz二进制)索引器集成。NZB文件类似于torrent文件,NZB索引器类似于torrent站点。 还有更多 如何在Debian上安装SABnzbd Usenet客户端 SABnzbd可从默认的Debian存储库获得。您需要启用contrib组件才能安装它。 sudo apt install软件属性公共sudo add apt repository contrib sudo apt update sudo apt install sabnzbdplus python sabyenc par2 SABYenc模块可以帮助提高CPU有限设备的下载速度。 为SABnzbd创建Systemd服务单元 尽管sabnzbdplus包提供了一个传统的Init脚本(/etc/Init.d/sabnzbdplus),但我发现它不起作用。我运行了以下命令来启动服务。 sudo服务sabnzbdplus启动 如果我用下面的命令列出Debian系统上的监听端口,那么找不到端口8080(默认情况下,SABnzbd监听端口8080)这表明它没有运行。 sudo ss-lnpt | grep 8080 启动SABnzbd的更好方法是使用Systemd服务单元。我们可以使用命令行文本编辑器(如Nano)为SABnzbd创建Systemd服务。 sudo nano/etc/systemd/system/sabnzbd。服务 将以下文本放入文件中。 [Unit]Description=SABnzbd Usenet Client After=网络。target[Service]Type=simple User=sabnzbd Group=sabnzbd ExecStart=/usr/bin/python-OO/usr/bin/sabnzbdplus--browser 0 ExecStop=/usr/bin/pkill sabnzbdplus Restart=always syslogidentier=sabnzbd Usenet Client[Install]WantedBy=multi-User。目标 默认情况下,SABnzbd监听端口8080。如果系统上的另一个进程正在使用这个端口,那么SABnzbd将自动选择另一个端口。我建议直接在ExecStart参数中选择一个端口,如下所示,这将使SABnzbd监听端口8081。 ExecStart=/usr/bin/python-OO/usr/bin/sabnzbdplus-s127.0.0.1:8081——浏览器0 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要关闭文件,请按Ctrl+X。) 然后重新加载系统D。 sudo systemctl后台程序重新加载 请注意,SABnzbd不需要root权限才能运行。所以我们已经在。SABnzbd应该作为没有根权限的SABnzbd用户和组运行的服务文件。使用以下命令创建sabnzbd系统用户和组。主目录将用于保存配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)。 sudo adduser——系统——home/home/sabnzbd——组sabnzbd 现在我们可以使用systemd服务启动sabnzbd。 sudo systemctl启动sabnzbd 启动时启用自动启动。 sudo systemctl启用sabnzbd 现在检查sabnzbd状态。 系统控制状态sabnzbd 样本输出: 启动安装向导 您可以在任何web浏览器中输入127.0.0.1:8080/sabnzbd/wizard以启动快速启动向导。如果在远程Debian服务器上安装了SABnzbd,则需要使用Nginx或Apache设置反向代理,以便访问web UI,本教程稍后将对此进行解释。 选择一种语言。在下一个屏幕中,输入Usenet提供商的服务器详细信息。我使用NewsDemon,它提供15天的免费试用期。这些服务器详细信息可以从您的Usenet提供商处获得。如果您的Usenet支持SSL,请确保勾选SSL。 为了从Usenet下载内容(图像、音频、视频、电子书等),您需要向SABnzbd提供一个NZB文件。NZB文件,类似于。torrent文件,可以从像nzbfinder这样的Usenet索引网站下载。ws。这些网站大多基于免费模式。你可以选择建立自己的免费Usenet indexer,但是现在对于一个Usenet初学者来说,在这些Usenet索引站点注册免费帐户是一个好主意,看看你能得到什么。从截图中可以看出,下载速度非常快。(16.8 MB/s=134.4 Mbit/s) 如何更改下载目标文件夹 默认的下载文件夹是/home/sabnzbd/Downloads。如果要将其更改为另一个目录,例如外部硬盘,请单击SABnzbd web界面中的文件夹菜单。然后单击浏览器按钮进行更改。 请注意,sabnzbd用户需要对下载目标文件夹具有读写权限。如果使用外部USB硬盘,可以运行以下命令授予权限。 sudo setfacl-R-mu:sabnzbd:rwx/media/linuxbabe/ 我的外部USB硬盘安装在/media/linuxbabe/,请根据需要进行更改。 设置反向代理 要使用域名从远程连接(例如局域网外)访问SABnzbd web界面,可以使用Nginx或Apache设置反向代理。 如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 Nginx 在Debian上安装Nginx。 sudo apt安装nginx 启动Nginx web服务器。 sudo systemctl start nginx 然后在/etc/nginx/conf.d/目录中创建一个新的服务器块文件。 sudo nano/etc/nginx/conf.d/sabnzbd。形态 将以下文本粘贴到文件中。替换sabnzbd。你的领域。com与您首选的域名,不要忘记为其创建DNS记录。如果使用不同的端口,请将8080更改为自己的端口号。 服务器{listen 80;listen[::]:80;服务器名sabnzbd.your-domain.com;位置/{proxy_passhttp://127.0.0.1:8080; 代理设置头主机$httpU主机;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx。 sudo systemctl重新加载nginx 现在,您可以通过SABnzbd访问SABnzbd Web界面。你的领域。通用域名格式。如果您看到以下错误: 访问被拒绝-主机名验证失败 然后需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)并添加sabnzbd。你的领域。进入白名单。 host_whitelist=sabnzbd。你的领域。通用域名格式 然后重启SABnzbd。 sudo systemctl重启sabnzbd 阿帕奇 如果使用ApacheWeb服务器而不是Nginx,请按照以下说明设置反向代理。 安装Apache web服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块,还需要启用重写模块。 sudo a2enmod代理服务器u http重写 然后为SABnzbd创建一个虚拟主机文件。 sudo nano/etc/apache2/sites available/sabnzbd。形态 将以下文本放入文件中。替换sabnzbd。你的领域。com与您的实际域名,不要忘记为其创建DNS a记录。如果使用不同的端口,请将8080更改为自己的端口号。 &lt;虚拟主机*:80&gt;服务器名sabnzbd。你的领域。com ProxyPass/http://127.0.0.1:8080/ProxyPassReverse/http://127.0.0.1:8080/&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite sabnzbd。形态 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 现在,您可以通过在浏览器地址栏中输入域名(SABnzbd.your-domain.com)远程访问SABnzbd。如果您看到以下错误: 访问被拒绝-主机名验证失败 然后需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)并添加sabnzbd。你的领域。进入白名单。 host_whitelist=sabnzbd。你的领域。通用域名格式 然后重启SABnzbd。 sudo systemctl重启sabnzbd 启用HTTPS 为了在您从外部访问SABnzbd web界面时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d sabnzbd。你的领域。通用域名格式 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d sabnzbd。你的领域。通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 限制访问 如果可以从公共互联网访问SABnzbd,那么设置用户名和密码非常重要,这可以在配置中完成&gt;通用&gt;保安科。 收尾 就这样!我希望本教程能帮助您在Debian上安装SABnzbd。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:368
  • 如何使用纯FTPd在Debian 10上设置安全的FTP服务器

    Pure FTPd是一款免费的开源FTP服务器,其设计考虑了安全性。在本教程中,我们将学习如何使用纯FTPd在Debian 10上设置FTP服务器,以及如何实施TLS加密。 纯FTPd功能: 它支持SSL/TLS加密,因此可以保护密码和命令。 它可以在大多数类Unix系统上运行:Linux、BSDs、Solaris、Darwin、HPUX、AIX,甚至iPhone。 有21种语言可供选择。 允许您监视活动会话。 支持虚拟配额系统。 还有更多 有关完整的功能列表,请访问Pure FTPd官方网站。 步骤1:在Debian 10服务器上安装Pure FTPd 它位于软件存储库中,因此发出以下命令来安装FTP服务器。 sudo apt安装纯ftpd 一旦安装,Pure FTPd将自动启动,如下命令所示: systemctl状态纯ftpd 输出: ● 纯ftpd。已加载服务:已加载(/etc/init.d/pure-ftpd;已生成)活动:自2021-06-16 13:15:52 UTC周三起活动(运行);23秒前的文档:man:systemd sysv generator(8)任务:1(限制:558)内存:972.0K CGroup:/system。切片/纯ftpd。服务└─9223纯ftpd(服务器) 如果它没有运行,请用以下代码启动: sudo systemctl启动纯ftpd 它在TCP端口21上监听,这是控制端口,可以从中看到 sudo ss-lnpt |格雷普纯ftpd 另一个端口是数据端口(TCP端口20),用户通过FTP传输文件时将使用该端口。 默认情况下禁用匿名访问。从现在起,您可以使用系统帐户登录,但纯文本FTP是不安全的,强烈建议不要使用。为了有一个安全的FTP服务器,我们需要加密与TLS的通信。 第2步:实施TLS加密 要同时启用纯文本和TLS加密,请运行以下命令,创建/etc/pure-ftpd/conf/TLS文件,并将数字1放入该文件中。 echo 1 | sudo-tee/etc/pure-ftpd/conf/TLS 但建议禁用纯文本,只使用TLS加密,因此将数字2改为文件。 echo 2 | sudo-tee/etc/pure-ftpd/conf/TLS 现在我们实施了TLS,我们需要获得有效的TLS证书。不建议使用自签名证书,因为用户会看到如下屏幕截图所示的警告消息。 步骤3:从Let's Encrypt获取受信任的TLS证书 运行以下命令,从默认的Debian 10存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot 我建议使用standalone或webroot插件获取纯FTPd的TLS证书。 独立插件 如果Debian 10服务器上没有运行web服务器,可以使用独立插件。运行以下命令。别忘了为你的子域设置DNS记录。 sudo certbot certonly--独立--首选挑战http--同意tos--电子邮件[email ;protected]-d ftp。实例通用域名格式 哪里: certonly:获取证书,但不要安装它。 --standalone:使用standalone插件获取证书 --首选挑战http:执行http-01挑战以验证我们的域,该域将使用端口80。 --同意:同意让我们加密服务条款。 --电子邮件:电子邮件地址用于帐户注册和恢复。 -d:指定你的域名。 从下面的截图可以看出,我成功地获得了证书。 使用webroot插件 如果Debian 10服务器有一个web服务器,那么最好使用webroot插件来获取证书,因为webroot插件几乎适用于所有web服务器,我们不需要在web服务器中安装证书。 首先,您需要为ftp创建一个虚拟主机。实例通用域名格式。 阿帕奇 如果您使用的是Apache,那么 sudo nano/etc/apache2/sites available/ftp。实例通用域名格式。形态 并将以下行粘贴到文件中。 &lt;虚拟主机*:80&gt;服务器名ftp。实例com DocumentRoot/var/www/Pure-FTPd&lt/VirtualHost&gt; 保存并关闭文件。然后创建web根目录。 sudo mkdir/var/www/Pure-FTPd 将www数据(Apache用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 启用此虚拟主机。 sudo a2ensite ftp。实例通用域名格式 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd Nginx 如果您使用的是Nginx,那么 sudo nano/etc/nginx/conf.d/ftp。实例通用域名格式。形态 将以下行粘贴到文件中。 服务器{listen 80;listen[:]:80;server_name ftp.example.com;root/var/www/Pure-FTPd/;location~/.well-known/acme challenge{allow all;} 保存并关闭文件。然后创建web根目录。 sudo mkdir-p/var/www/Pure-FTPd 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd 步骤4:安装证书 Pure FTPd要求将证书和私钥合并到一个名为Pure FTPd的文件中。pem并存储在/etc/ssl/private/目录下。 更改为/etc/letsencrypt/live/ftp。实例com/directory。 sudo su-cd/etc/letsencrypt/live/ftp。实例com/ 您可以使用cat命令将两个文件合并为一个文件,如下所示。 猫全链。佩姆·普列夫基。pem | sudo-tee/etc/ssl/private/pure-ftpd。佩姆 确保只有root用户才能读取该文件。 sudo chmod 600/etc/ssl/private/pure-ftpd。佩姆 我们需要生成Diffie-Hellman参数: sudo openssl dhparam-out/etc/ssl/private/pure-ftpd dhparams。pem 4096 如果您的服务器只有一个CPU核心,那么这将需要很长时间(大约10分钟)。 完成后,重新启动纯FTPd。 sudo systemctl重新启动纯ftpd 检查状态以查看它是否正在运行。 systemctl状态纯ftpd 现在,您可以通过TLS连接到FTP服务器。 第5步:在防火墙中打开FTP端口 如果使用UFW防火墙,则运行以下命令打开TCP端口20和21。 sudo ufw允许20,21/tcp 第6步:连接到FTP服务器 如果您使用Nautilus file manager通过纯文本FTP://协议连接到FTP服务器 连接将被拒绝。 您必须使用ftps://,而不是ftp://。 默认情况下,FTP用户将被带到服务器上的/root目录。 请注意,Filezilla默认情况下不信任任何证书(自签名或CA签名)。用户必须选择为自己信任证书。 FileZilla未知证书警告 您需要使用FTP显式TLS协议(ftpes://ftp.example.com)在菲齐拉。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开根用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&amp;cd/etc/letsencrypt/live/ftp。实例com/&amp&amp;猫全链。佩姆·普列夫基。pem | tee/etc/ssl/private/pure ftpd。pem&amp&amp;systemctl重新加载纯ftpd 有必要重新加载纯ftpd,使其获取新的证书和私钥。 收尾 我希望本教程能帮助您在Debian 10上使用纯FTPd设置一个安全的FTP服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Twitter或Facebook上关注我们。

    2022.03.22 浏览:315
  • 如何在Debian 10上设置OSM地理编码服务器

    在上一个教程中,我解释了在Debian 10上构建自己的OSM tile服务器的过程。本教程将向您展示如何在Debian 10上设置Namingm地理编码服务器。Nagnitm为OpenStreetMap提供搜索功能,因此如果访客在搜索框中输入地址,将返回该地址的纬度/经度位置。 第一步:从源代码构建提名 安装依赖项包以构建Nagnitm。 sudo apt update sudo apt install build essential cmake g++libboost dev libboost system dev libboost filesystem dev libexpat1 dev zlib1g dev libbz2 dev libpq dev libproj dev apache2 php php php pgsql libapache2 mod php intl python3 setuptools python3 dev python3 pip python3-psycopg2 python3 tidylib git gram postgresql-server-dev-11 创建提名用户。(无需为此用户创建密码。) sudo useradd-d/srv/namitm-s/bin/bash-m namitm 更改为/srv/m/目录。 cd/srv/M/ 向您自己的用户帐户授予权限。 sudo apt install acl sudo setfacl-R-mu:username:rwx/srv/m/ 从官方网站下载提名。 wgethttps://nominatim.org/release/Nominatim-3.5.1.tar.bz2 取出柏油球。 tar xvf M-3.5.1。焦油bz2 创建构建目录。 mkdir构建 更改到此目录并配置生成环境。 cd build cmake/srv/Namingm/Namingm-3.5.1 编译源代码。 制作 第2步:配置提名 Nagnitm的默认配置文件是/srv/Nagnitm/build/settings/settings。php。我们可以创建一个本地。php文件,并在那里添加我们的修改。 sudo nano/srv/m/build/settings/local。php 在文件中添加以下行。 &lt;?php@define('CONST_Website_BaseURL','/namignm/')@定义('CONST_Default_Lat',55.0)@定义('CONST_Default_Lon',1.0)@定义('CONST_Default_Zoom',6)@定义('CONST_Map_Tile_URL','https://tile.linuxbabe.com/osm/{z} /{x}/{y}。巴布亚新几内亚); 上述配置定义了 相对于磁贴服务器的Namingm实例的路径。 默认纬度、经度和缩放级别。 OSM磁贴服务器的URL。默认情况下,Nagnitm使用公共openstreetmap。组织平铺服务器。在这里,我使用自己的磁贴服务器。 您还可以查看/srv/namitm/build/settings/settings。php文件,并在需要时添加自己的自定义项。例如,如果要导入大型数据集(欧洲、北美、planet等),最好启用节点位置的平面节点存储,这样节点坐标将存储在一个简单的文件中,而不是数据库中,从而节省导入时间和磁盘存储。 @定义('CONST_Osm2pgsql_Flatnode_File','/srv/namignm/Flatnode.File'); 保存并关闭文件。 第3步:导入OSM数据库 下载维基百科重要性转储文件,这将提高Nomatim搜索结果的质量。 cd/srv/NAMMATIONM/NAMMATIONM-3.5.1/data wgethttps://www.nominatim.org/data/wikimedia-importance.sql.gz 下载美国和英国邮政编码数据。 wgethttps://www.nominatim.org/data/us_postcode_data.sql.gzwgethttps://www.nominatim.org/data/gb_postcode_data.sql.gz 下载国家代码数据文件。 wget——国家电网。sql。广州https://www.nominatim.org/data/country_grid.sql.gz 然后需要下载一个OSM文件并将其导入PostgreSQL。你可以去http://download.geofabrik.de下载你需要的摘录。也可以在磁贴服务器设置过程中使用PBF文件。 在PostgreSQL中创建www数据用户,这样web服务器将对数据库具有只读访问权限。 sudo-u postgres createuser www数据 向postgres用户授予权限。 sudo setfacl-R-mu:postgres:rwx/srv/m/ 切换到postgres用户。 sudo-u postgres-i 并运行以下命令将OSM提取导入PostgreSQL。 cd/srv/Namingm/build//srv/Namingm/build/utils/setup。php——osm文件/home/osm/great british-latest。奥斯曼。pbf——全部2个&gt&amp;1 |三通设置。日志 导入数据库后,索引过程将开始。 完成后,运行以下命令进行验证。 /srv/namignm/build/utils/check_import_finished。php 退出postgres用户。 出口 第4步:设置Apache 编辑磁贴服务器配置文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在VirtualHost标记之间添加以下行。 &lt;目录“/srv/namitm/build/website”&gt;选项如下SymLinks MultiViews AddType application/json。php目录索引搜索。php需要所有授权&lt/目录&gt;别名/namitm/srv/namitm/build/website 保存并关闭文件。然后重新加载Apache。 sudo systemctl重新加载apache2 现在参观https://tile.yourdomain.com/nominatim.您将看到您的Nomatim实例。 CSS文件位于/srv/namitm/build/website/CSS/search。css,如果你想定制外观。 更新提名数据库 为了使Namingm数据库保持最新,我们需要安装Pyosmium。它可以从默认的软件存储库中获得,但建议使用pip3安装最新版本。 sudo pip3安装锇 这将安装一个二进制文件/usr/local/bin/pyosmium获取更改。编辑配置文件。 sudo nano/srv/m/build/settings/local。php 添加以下行以指定pyosmium get changes的位置。 @定义('CONST_Pyosmium_Binary','/usr/local/bin/Pyosmium get changes'); 接下来,我们需要告诉Namingm在哪里下载更新。默认情况下,它被配置为从https://planet.openstreetmap.org/replication/minute.如果您从geofabrik下载了OSM PBF文件。de,那么最好也从那里下载更新。 要查找自己地图的更新URL,请转到https://download.geofabrik.de/找到你所在的地区。然后找到该文件的URL。osc。gz文件。 此URL是更新URL。 在/srv/namignm/build/settings/local中添加以下行。php文件。您需要使用自己的更新URL。 //复制服务@define的基本URL('CONST_replication_URL','http://download.geofabrik.de/europe/great-britain-updates'); // 上游发布diff@define的频率('CONST_Replication_Update_Interval','86400');//如果还没有找到更新@define('CONST_Replication_Recheck_Interval','900'),需要多长时间睡眠; 保存并关闭文件。向postgres用户授予权限。 sudo setfacl-R-m“u:postgres:rwx”/srv/m/build/ 然后切换到postgres用户。 sudo-u postgres-i 初始化更新过程。 /srv/namignm/build/utils/update。php——初始化更新 更新我的数据库。 /srv/namignm/build/utils/update。php——全部导入 设置Cron作业以进行自动更新 编辑root用户的Crontab文件。 sudo crontab-e 在此文件中添加以下行。 @每日sudo-u postgres/srv/namitm/build/utils/update。php——全部导入 保存并关闭文件。 如何在拖沓的地图上添加搜索功能 我假设你的slippy地图是使用传单JavaScript库显示的。要将搜索功能添加到地图中,需要使用传单地理编码插件。我将向您展示如何使用传单控制地理编码器。其实很简单。 假设您使用以下HTML代码来显示拖拉地图。 &lt;html&gt&书信电报;头&gt&书信电报;meta charset=“UTF-8”大于&书信电报;标题&gt;我的第一个osm&lt/标题&gt&书信电报;link rel=“stylesheet”type=“text/css”href=“传单.css”/&gt&书信电报;script type=“text/javascript”src=“ployate.js”&gt&lt/脚本&gt&书信电报;风格&gt#地图{宽度:100%;高度:100%}&lt/风格&gt&lt/头&gt&书信电报;车身&gt&书信电报;div id=“map”&gt&lt/部门&gt&书信电报;脚本&gt;var map=L.map('map')。setView([54,1],6);蒂莱莱耶https://tile.yourdomain.com/osm/{z} /{x}/{y}。png',{maxZoom:19})。addTo(地图)&lt/脚本&gt&lt/车身&gt&lt/html&gt; 现在,您需要在HTML标题中添加以下两行,以使用传单控制地理编码器插件。 &lt;link rel=“stylesheet”href=”https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.css“/&gt;&lt;脚本src=”https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js“&gt;&lt;/script&gt; 然后将以下函数添加到&lt;脚本&gt&lt/脚本&gt;将搜索功能添加到地图中。 控制。地理编码器()。addTo(地图); 最终的HTML代码如下所示: &lt;html&gt&书信电报;头&gt&书信电报;meta charset=“UTF-8”大于&书信电报;标题&gt;我的第一个osm&lt/标题&gt&书信电报;link rel=“stylesheet”type=“text/css”href=“传单.css”/&gt&书信电报;link rel=“stylesheet”href=”https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.css“/&gt;&lt;script type=“text/javascript”src=“传单。js“&gt;&lt;/script&gt;&lt;script src=”https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js“&gt;&lt;/script&gt;&lt;style&gt;#map{宽度:100%;高度:100%}&lt;/style&gt;&lt;/head&gt;&lt;body&gt;&lt;div id=“map”&gt;&lt;/div&gt;&lt;script&gt;var map=L.map('map')。setView([54,1],6);L.tileLayer('map')”https://tile.yourdomain.com/osm/{z} /{x}/{y}。png',{maxZoom:19})。addTo(地图);控制。地理编码器()。addTo(地图)&lt/脚本&gt&lt/车身&gt&lt/html&gt; 保存并关闭文件。然后在web浏览器中重新加载地图,您应该会在右上角看到一个搜索按钮。 默认情况下,传单控制地理编码器使用公共https://nominatim.openstreetmap.org地理编码服务。要使用您自己的地理编码服务,请删除以下行。 控制。地理编码器()。addTo(地图); 改为添加以下行。将该URL替换为您的提名地理编码服务的URL。请注意,不应省略尾随的斜杠。 var geocoder=L.控制。地理编码器。提名({serviceUrl:'https://tile.yourdomain.com/nominatim/'}); if(URLSearchParams&amp;location.search){//parse/?geocoder=namitm from URL var params=new URLSearchParams(location.search);var geocoderString=params.get('geocoder');if(geocoderString&amp;L.Control.geocoder[geocoderString]){console.log('Using geocoder',geocoderString);geocoder=L.Control geocoder[geocoderString](); } else if(geocoderString){console.warn('Unsupported geocoder',geocoderString);}var control=L.control。地理编码器({query:'Moon',占位符:'Search here…',geocoder:geocoder})。addTo(地图);var标记;setTimeout(function(){control.setQuery('Earth');},12000); 您还可以为反向地理编码添加以下代码。当访客点击地图上的某个点时,该地址的名称就会出现。 地图在('click',函数(e){geocoder.reverse(e.latlng,map.options.crs.scale(map.getZoom()),函数(results){var r=results[0];if(r){if(marker){marker.setLatLng(r.center.).setPopupContent(r.html | | r.name).openPopup()}else{marker=L.marker(r.center).bindpoppup(r.name).addTo(map.openPopup();}}});}); 保存并关闭文件。然后在web浏览器中重新加载地图。 提高反向搜索的准确性 提名中有两种类型的搜索: 前向搜索,又名地理编码,返回地址的纬度和经度 反向搜索,又名反向地理编码,返回纬度和经度的地址,即当访问者点击地图上的某个点时。 如果进行反向搜索,则标记针和弹出窗口与您单击的地图上的位置不在同一位置,则需要增加缩放级别。地图。getZoom()函数将获取当前的地图视图,该视图由setView()函数设置,如下所示 var map=L.map('map')。setView([54,1],6); 缩放级别设置为6,这将导致反向搜索的精度较低。我们可以对反向搜索的缩放级别进行硬编码,如下所示: 地理编码器。反转(如拉特林、地图选项、crs比例(21)、功能(结果) i、 换张地图。getZoom()到21。反向搜索的最大缩放级别为21。您可以选择另一个缩放级别以满足您的需要。 故障排除 如果地图上的搜索功能不起作用,您可以检查web浏览器的控制台,找出哪里出了问题。有些人可能会认为406不可接受或CORS不允许出现错误。确保为设置了正确的MIME类型。Apache配置文件中的php。有些人可能有下面这句话,这可能会导致上述错误。 AddType text/html。php 应该是的 AddType应用程序/json。php 更改MIME类型后。重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 收尾 我希望本教程能帮助您在Debian 10上安装Namingm地理编码服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:482
  • 在Ubuntu上设置自动安全更新(无人参与升级)

    本教程将向您展示如何在Ubuntu上设置自动安全更新,即无人值守升级。如果你不是住在洞穴下,那么你可能知道Equifax的大规模数据泄露。2017年5月至7月期间,1.43亿Equifax客户信息被盗,包括姓名、社保号、出生日期、驾照、20万个信用卡号码。 在2017年3月,Apache结构中的一个关键漏洞被发现,Apache基金会发布了一个修复程序,当他们宣布存在漏洞时。然而,Equifax有两个月没有修补该漏洞,导致了大规模数据泄露。运行复杂应用程序的公司可能需要在安装更新之前进行大量测试,但如果您有一台供个人使用的简单Linux服务器,则可以启用自动安全更新以尽快修补漏洞。 在Ubuntu服务器上配置自动安全更新(无人参与升级) 首先,安装无人值守升级包。 sudo apt更新sudo apt安装无人值守升级 您需要安装update notifier common软件包才能设置自动重新启动。 sudo-apt-install-update-notifier-common 然后编辑文件。 sudo nano/etc/apt/apt.conf.d/507-upgrades 在这个文件中,您可以配置应该自动更新的包。默认情况下,只会自动安装安全更新,如下行所示。所以没有必要改变这一部分。 无人参与升级::允许的来源{“${distro_id}:${distro_codename}”;“${distro_id}:${distro_codename}-安全”;//延长安全维护;不一定存在于//每个版本,并且此系统可能没有安装它,但是如果//可用,更新的策略是,默认情况下,无人参与的升级//也应该从这里安装。“${distro_id}ESMApps:${distro_codename}-应用程序安全”;“${distro_id}ESM:${distro_codename}-基础安全”//“${distro_id}:${distro_codename}-更新”//“${distro_id}:${distro_codename}-建议”//“${distro_id}:${distro_codename}-后端口”;}; 第一个来源“${distro_id}:${distro_codename}”是必需的,因为安全更新可能会从非安全源引入新的依赖项。此来源不提供软件更新。 第二个来源是定期的安全更新。 第三个和第四个来源(ESMaps和ESM)用于扩展安全维护,也就是说,对于那些运行Ubuntu版本的人来说,它已经到了生命的尽头。你可以保持原样。 电子邮件通知 有时Ubuntu可能无法安装安全更新,因此需要手动更新。如果您希望在每次安全更新后收到电子邮件通知,请查找下面的行并取消注释。(删除开头的双斜线。) Ubuntu 18.04 //无人参与升级::邮件“root”; Ubuntu 20.04 //无人参与升级::邮件“”; 您可以指定接收通知的电子邮件地址,如下所示。 无人参与升级::邮件“[email&#160;受保护]”; 如果您希望仅在安全更新过程中出现错误时接收电子邮件通知,请取消对以下行的注释。 Ubuntu 18.04 //无人参与升级::MailOnlyOnError“true”; 在Ubuntu20.04上,您需要找到以下行 //无人参与升级::MailReport“on change”; 取消注释,并在更改为时进行更改 无人参与升级::MailReport“仅在出错时”; 自动删除未使用的依赖项 您可能需要在每次更新后执行sudo apt autoremove,因此请查看以下行: //无人参与升级::删除未使用的依赖项“false”; 取消对此行的注释,并将false更改为true。 无人参与升级::删除未使用的依赖项“true”; 自动重启 安装Linux内核的安全更新后,需要重新启动Ubuntu服务器才能应用内核更新。如果服务器仅由您或少数人使用,则启用自动重新启动会很方便。找到下面这行。 //无人参与升级::自动重新启动“错误”; 取消对其注释,并将false更改为true以启用自动重新启动 无人参与升级::自动重启“真”; 您还可以指定执行重新启动的时间。默认情况下,在安装内核更新后立即重新启动。我将其设置为凌晨4点重新启动。确保为服务器设置了正确的时区。 无人值守升级:自动重启时间“04:00”; 保存并关闭文件。 如果服务器正在被许多用户使用,或者需要很长的正常运行时间(比如这个博客),那么不应该启用自动重启。相反,您可以使用Canonical livepatch来修补Linux内核,而无需重新启动。 Canonical LivePatch服务:在不重新启动的情况下在Ubuntu上修补Linux内核 启用自动安全更新 现在已经配置了自动安全更新,我们需要通过创建20auto upgrades文件来启用它。 sudo nano/etc/apt/apt.conf.d/20auto-upgrades 将以下两行复制并粘贴到文件中。 APT::定期::更新包列表“1”;APT::定期::无人值守升级“1”; 第一行使apt每天自动执行“apt get update”。如果设置为2,则每隔一天。(0=禁用) 第二行使apt能够自动安装安全更新。(1=已启用,0=已禁用) 保存并关闭文件。 在特定时间运行无人值守升级 无人值守升级在上午12点到7点之间随机运行,以防止由于每个人同时运行更新而导致镜像服务器负载激增。您可以通过以下方式手动运行无人值守升级: sudo无人值守升级-v 还可以将此命令添加到Cron作业中。 sudo crontab-e 在Crontab文件的底部添加以下行,这样无人参与的升级将在每天凌晨2点运行。 0 2***sudo/usr/bin/无人值守升级-v 设置SMTP中继 为了在每次安全更新后接收电子邮件通知,您的服务器需要能够发送电子邮件。如果这是您的电子邮件服务器,那么唯一要做的就是安装bsd mailx包。 sudo apt安装bsd mailx 如果这不是电子邮件服务器,则需要设置SMTP中继。我们可以安装Postfix SMTP服务器,然后通过电子邮件服务提供商转发电子邮件。 有几个电子邮件服务提供商(ESP)可以充当中继主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Sendinblue,这是一家电子邮件服务提供商,允许您每天免费发送300封电子邮件。 在sendinblue创建一个免费帐户。通用域名格式。完成用户配置文件后,单击事务选项卡,您将获得SMTP设置。如果没有SMTP设置,您需要联系Sendinblue客户服务以激活事务性电子邮件服务。 现在,您需要配置Postfix SMTP服务器以使用Sendinblue SMTP设置。 让我们用下面的命令在Ubuntu上安装Postfix SMTP服务器。 sudo apt安装后缀libsasl2模块 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,使用命令行文本编辑器(如Nano)打开主配置文件。 sudo nano/etc/postfix/main。查阅 找到下面这行。 relayhost= 默认情况下,其值为空。将relayhost的值设置为[smtp relay.sendinblue.com]:587。 relayhost=[smtp relay.sendinblue.com]:587 然后将以下行添加到此文件的末尾。 #出站中继配置smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options=noanonymous smtp_tls_security_level=may header_size_limit=4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano/etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用SendinBlue提供的您自己的用户名和密码替换smtp_用户名和smtp_密码。注意用户名和密码之间有一个冒号。 [smtp relay.sendinblue.com]:587 smtp_用户名:smtp_passowrd 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap/etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl重启后缀 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600/etc/postfix/sasl_passwd/etc/postfix/sasl_passwd。分贝 从现在起,Postfix将通过Sendinblue发送电子邮件。 添加发件人地址 单击Sendinblue account仪表板右上角的下拉菜单,然后选择发件人&amp;“IP”选项卡以添加您的域和发件人地址。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd mailx echo“这是一封测试电子邮件。”|mailx-r from address-s hello to address 如果SMTP配置正确,您将收到一封电子邮件。 电子邮件不发送? 您可以查看邮件日志(/var/log/mail.log)来调试电子邮件不发送的原因。 如果在/etc/postfix/main中用括号包装中继主机。cf文件。 relayhost=[smtp relay.sendinblue.com]:587 然后还需要将主机名包装在/etc/postfix/sasl_passwd文件中。 [smtp relay.sendinblue.com]:587[email&#160;protected]:YourGmail密码 记住重新生成hash db文件。 sudo postmap/etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl重启后缀 禁止接收电子邮件 默认情况下,Postfix配置为接受传入邮件。您可以将Postfix配置为仅发送电子邮件,但不接受传入的电子邮件。在/etc/postfix/main中找到以下行。cf文件。 inet_接口=全部 将其更改为以下文本,以便Postfix只在本地主机上侦听。 inet_接口=仅环回 电子邮件报告 无人值守升级可能会发送3封电子邮件: 无人参与升级返回:True。这意味着软件包安装成功。 无人参与升级返回:False。这意味着在安装更新时发生了一些错误。通常需要人工干预。如果您收到此电子邮件,您需要手动运行sudo apt升级。 无人参与升级返回:无。有可用的更新,但系统拒绝安装。 日志 日志可以在/var/log/Understand upgrades/目录中找到。 检查重启 checkrestart命令可以帮助您确定升级后需要重新启动哪些进程。可从debian goodies package购买。 sudo apt安装debian goodies sudo checkrestart 收尾 我希望本教程能帮助你在Ubuntu服务器上进行无人值守的升级。和往常一样,如果你觉得这篇文章有用,订阅我们的免费时事通讯,获取更多提示和窍门?

    2022.03.23 浏览:393