当前位置:首页 > CN2资讯 > 正文内容

docker查看端口转发 docker端口转发 udp

1天前CN2资讯


---------使用docker搭建nextcloud---------

使用环境:

  • 物理主机:ubuntu
  • docker
  • 一台能访问的vps
  • 如需要使用https,参考这里:https://certbot.eff.org/lets-encrypt/debianbuster-apache

[ 注意:以下所有主机均关闭防火墙操作,如需开启防火墙操作,请先配置防火墙策略 ]

 

 

1、docker搜索nextcloud

# docker search nextcloud

   

2、下载nextcloud

# docker pull nextcloud

 

3、运行nextcloud,将主机的3380端口映射到docker容器中的80端口。

# docker run -d --name nextcloud --hostname="nextcloud" -p 3380:80 -p 3443:443 nextcloud

 

[ 温馨提示:可以映射文件夹到物理机,便于操作,参考命令   docker run -d --hostname="nextcloud" --name="nextcloud" -v /home/anonymous/docker/nextcloud/root:/root -v /home/anonymous/docker/nextcloud/data:/var/www/html/data -p 62080:80 -p 62443:443 -p 62036:3306 nextcloud ]

 

4、在浏览器中打开nextcloud,  http://127.0.0.1:3380

 

 [ 我们选择mariadb作为存储的数据库,那么下面就先开始安装并创建该数据库 ]

 

5、进入docker容器,配置数据库

# docker exec -it nextcloud /bin/bash

//安装mariadb数据库

# apt update

# apt install vim mariadb-server

如果能直接进入数据库,则直接修改密码即可,不需要再进行下列-----------------框住的设置

# /etc/init.d/mysql start 

# mysql -u root 

MariaDB [(none)]> use mysql;

MariaDB [mysql]> alter user 'root'@'localhost' identified by '123456';

----------------------------------------------------------------------------------------------------------

安装完数据库之后,由于没有密码,登录不进数据库;接下来修改mariadb的root密码

# /etc/init.d/mysql stop 

# mysqld_safe --skip-grant-tables & 

# mysql -u root 

 

// 连接到数据库中,设置数据库用户root的新密码

MariaDB [(none)]>

MariaDB [mysql]> update user set password=password("123456") where User='root';          //举例,密码设置为123456

------------------------------------------------------------------------------------------------------------------------------

MariaDB [mysql]>
MariaDB [mysql]> quit;

// 重启后,即可登录数据库:

# /etc/init.d/mysql restart
# mysql -uroot -p

然后输入密码即可进入到数据库中:

 

// 为nextcloud创建数据库:

MariaDB [(none)]> create database nextcloud_db;

MariaDB [(none)]> grant all on nextcloud_db.* to 'nextcloud'@'%' identified by 'nextcloud'; 

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> quit;

[ 以上创建了数据库名:nextcloud_db     用户:nextcloud     密码:nextcloud ]

 

6、创建nextcloud帐号,并填写以上所创建的数据库相关的信息。

 

7、安装nextcloud完成。

注意:默认只允许本机访问nextcloud,即使用 http://127.0.0.1:3380 地址访问,假如主机的ip地址为:192.168.1.2,那么想在外部(如同网段的手机)使用192这个地址是不能访问nextcloud的,需要在docker中的nextcloud进行配置,

在trusted_domians处增加一栏即可:

1 => '192.168.1.2:3380' ,

 # vim /var/www/html/config/config.php

  

在外部(如同一网段中的手机或者其他电脑)使用使用地址  http://192.168.1.2:3380    也可以访问。

  

接下来,我们使用vps端口转发功能,通过vps的ip及转发的端口访问内网的nextcloud

8、使用ssh反向隧道

在物理主机(不是docker中的nextcloud)中运行命令,前提是物理主机要预先安装有openssh-server。

# ssh -fNR 9988:localhost:3380 root@vps_ip

// 参数说明    -f 为背景运行      N为不打开命令行界面       R为使用反向隧道

// 9988为本地物理机的外网访问端口,用于与vps通信

// localhost:3380   为物理机的3380端口

// 整条命令的意思是:vps通过访问9988端口,由于端口转发,所以9988端口流量转发到3380端口,再由于3380端口被映射到dockder中的80端口。总的来说,通过vps的9988端口可以直接访问到docker中nextcloud的80端口。

 

9、在vps主机上开启端口转发功能

编辑 /etc/ssh/sshd_config

去掉注释,并把 no 改为 yes,这一步很关键,没有开启端口转发,访问网页会提示拒绝访问。

  

10、使用vps的ip访问内网的nextcloud          http://vps_ip:9988

然后发现并不能打开,因为需要修改trusted_domians,参照第7步,把vps的ip和端口加进去即可。

 

[ http访问就设置完成了,接下来设置使用https,保证数据安全 ]

 

 

11、注册域名,并设置dns记录

首先注册一个域名,然后在域名提供商的网站上面设置DNS记录,如设置A记录即可将域名指向公网ip地址(也就是上面的vps地址)

 

12、在内网宿主机上设置端口转发

# ssh -p 22 -fNR 443:localhost:3443 root@vps_ip

其中:443为vps上映射的端口,确保在vps上443端口没有被使用。3443为宿主机映射到docker里的nextcloud的443端口。

也就是说访问vps的443端口即可访问到nextcloud的443端口。

至于为什么要用vps的443端口,而不能用其他端口,因为在设置域名dns记录时,直接添加ip地址,没有设置其他端口,默认就是443,访问域名时候直接指向vps的443端口。

 

13、使用certbot配置https

设置https,无需在vps上做任何设置,vps只做端口转发使用。

在内网主机中的docker里的nextcloud里面安装 certbot 

# apt install certbot

然后使用certbot进行设置

# certbot --apache

输入自己的域名地址,回车即可设置成功。

 

14、在nextcloud上设置trusted_domians以便使用域名访问

将域名写进上面第7步的 trusted_domians,前缀无需写上https

1 => 'domain.com' , 

 

 15、可以成功访问 https://mydomain.com

 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19357.html

    分享给朋友:

    “docker查看端口转发 docker端口转发 udp” 的相关文章

    香港云电脑:灵活、高效、经济的现代计算解决方案

    香港云电脑概述 香港云电脑,是基于云计算技术的一种崭新电脑服务模式。其实你可以把它想象成一种“租赁”的概念。我们不需要像以前那样花大价钱去购买实体电脑,而是可以通过网络租用需要的计算、存储和软件资源,与此同时,拥有几乎完整的电脑功能。这种模式的好处多多,包括灵活性、低成本、高效性以及可扩展性。无论是...

    cping工具:高效的网络检测助手

    在网络管理的世界里,cping工具无疑是一个非常实用的助手。作为一款高效且用户友好的网络检测工具,它专注于对C类IP地址进行ICMP测试。这不仅使得网络管理员能够快速了解网络环境的状态,还能有效帮助他们解决潜在的问题。 我总是喜欢用cping工具来进行网络监测。它的界面整洁,让我一目了然。重要的是,...

    如何选择国内免费服务器?全面指南与推荐

    国内免费服务器概述 在当今数字化快速发展的时代,云计算的普及正以前所未有的速度改变着我们的工作和生活方式。国内云服务器市场也随着这股潮流不断壮大,越来越多的云服务提供商进入市场,尝试用优惠的价格吸引用户。尤其是对于那些刚起步的开发者和小型企业而言,国内免费服务器的出现无疑为他们提供了一个很好的机会。...

    HudsonValleyHost主机服务测评:性价比与稳定性的完美结合

    HudsonValleyHost是一家成立于2014年的国外老牌主机商,已经在行业内稳扎稳打,逐渐树立了自己的品牌形象。这家公司最初的目标是为用户提供高性价比的主机服务,其中以其纽约的KVM VPS服务备受青睐。在我接触的众多主机服务商中,HudsonValleyHost的存在让我感受到了一种稳定与...

    宝塔面板PHP扩展新增指南:提升网站性能的实用技巧

    在日常网站管理和服务器配置中,宝塔面板的出现让这一切变得更为简单直观。作为一个流行的服务器控制面板,宝塔面板以其用户友好的界面和丰富的功能备受欢迎。对于没有技术背景的用户来说,它提供了极大的便利,而对于开发者来说,宝塔也能高效管理复杂的服务器配置。 宝塔面板不仅支持多种服务器环境,还能够轻松管理数据...

    腾讯云接入备案流程与注意事项详解

    在开始腾讯云接入备案之前,了解整个流程非常重要。备案是一个涉及多个步骤的过程,其中每一步都有其独特的要求和注意事项。接下来,我们就来看看腾讯云接入备案的具体流程,让你对这个过程有更清晰的认识。 首先,我们需要进行基础信息校验。这个步骤相对简单,主要是选择你希望备案的网站、域名或 APP。确保配置相关...