我已经阅读并重新阅读了 DO 对创建的线程的描述,但我一生都无法弄清楚发生了什么。这真的意味着每秒创建 650000 个线程吗?那是不对的。
请有人帮我解读这张图的含义。
对于在 Ubuntu 20.04 上使用 Digital Ocean droplet 的任何人来说,这应该是一个简单的答案。/var
我不小心运行了一个命令,该命令更改了(在我工作的目录之外)中的一堆文件的所有权和组。我已经设法恢复了大多数文件的所有者/组,但我不确定以下文件的所有者/组应该是什么:
/var/log/droplet-agent.update.log
/var/log/ubuntu-advantage-timer.log
/var/log/ubuntu-advantage.log
如果有人有这些文件的数字海洋水滴,请您发布所有者/组信息吗?它可以是 root:root 或者它可以是 root:syslog 或者它可以是其他任何东西。
提前致谢。
我想调查是什么导致了 1/16 几个小时的 CPU 使用率很高。Digital Ocean 图表显示,在大约 12 小时的过程中,CPU 使用率持续较高。是否有我可以利用的日志可以向我揭示有关此问题的更多详细信息?
谈到网络服务器安全,我是一个偏执的人。
在 DigitalOcean 上,我正在运行一个服务器。他们将其称为 Droplet。Cloudflare 是我的 DNS 提供商,Cloudflare 代理并保护我的服务器免受 DDoS 攻击。
但是,我尝试在 ZoomEye.org 的网络安全搜索引擎上搜索我的域,它找到了我的原始 IP 地址。据研究人员称,黑客只需要知道源 IP 地址就可以对网站进行 DDoS 攻击。技术是 L3 还是 L7 没有区别。
如何避免您的服务器在此类网络安全搜索引擎上泄露其 IP 地址?
当联系表格提交到我的网站时,我正在尝试从我的辅助电子邮件地址向我的主电子邮件地址发送一封电子邮件。我正在使用Swiftmailer来实现这一点。当我在计算机上的 XAMPP 服务器上脱机使用该代码时,该代码运行良好,但是当我尝试在运行 LAMP 堆栈的 Digital Ocean Droplet 上运行它时,这与我的脱机设置几乎相同,它不起作用并返回错误 500。
我调查了一下,结果发现,SMTP 被禁用以防止垃圾邮件,如果我联系支持,它可以被解除。在我联系他们之后,他们告诉我他们无法解除对端口 25 的限制,但告诉我尝试其他端口,并且 SMTP 不适用于浮动 IP。我删除了我的浮动 IP 来帮助解决这个问题,我目前正在尝试将端口 578 与 Hotmail 电子邮件地址一起使用,但它仍然无法正常工作。
到目前为止我已经尝试过:
我使用此命令打开了 Digital Ocean Support 建议的 587端口。
sudo iptables -A INPUT -p tcp --dport 587 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 587 -m conntrack --ctstate ESTABLISHED -j ACCEPT
之后,我的服务器就可以在 587 端口连接到 smtp.office365.com,如下面的命令所示:
nc -vz smtp.office365.com 587
Connection to smtp.office365.com 587 port [tcp/submission] succeeded!
命令“ufw status”显示端口 587 在 ipv4 和 ipv6 上都是打开的:
To Action From
-- ------ ----
22/tcp LIMIT Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
3306/tcp ALLOW Anywhere
587/tcp ALLOW Anywhere
22/tcp (v6) LIMIT Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
3306/tcp (v6) ALLOW Anywhere (v6)
587/tcp (v6) ALLOW Anywhere (v6)
但是,当我尝试运行联系表单时,它最终无法在 droplet 上运行,而它确实可以离线运行,并且我按预期收到了电子邮件。
有什么我想念的吗?
我将在下面附上我的 swiftmailer 部分的代码,以防它有助于识别我似乎遗漏的代码中的任何潜在错误。
include_once 'private/pass.inc.php';
//These fields usually get the data using a a form using POST method and PHP but left with placeholders here for the sake of simplicity.
$name = 'name';
$email = 'email';
$phone = 'phone';
$subject = 'subject';
$message = 'message';
// Send Email
// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.office365.com', 587, 'tls'))
->setUsername($emailusername)
->setPassword($emailpassword);
// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);
function sendVerificationEmail($name, $email, $phone, $subject, $message)
{
global $mailer;
$sentfrom = "[email protected]";
$sentto = "[email protected]";
$body = 'Message From:' . $name . '<br>' . $email . '<br>' . $phone . '<br>' . $subject . '<br>' . $message;
// Create a message
$message = (new Swift_Message("A New Message From " . $name))
->setFrom([$sentfrom])
->setTo([$sentto])
->setBody($body, 'text/html');
// Send the message
$result = $mailer->send($message);
}
sendVerificationEmail($name, $email, $phone, $subject, $message);
echo "<script> window.location.assign('./contactformsuccess'); </script>";
编辑:添加日志
[Sun Aug 15 07:34:58.851255 2021] [php:warn] [pid 182629] [client 162.158.167.91:37848] PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in /var/www/site.com/html/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php on line 94 [Sun Aug 15 07:34:58.851487 2021] [php:error] [pid 182629] [client 162.158.167.91:37848] PHP Fatal error: Uncaught Swift_TransportException: Unable to connect with TLS encryption in /var/www/site.com/html/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php:349\nStack trace:\n#0 /var/www/site.com/html/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(148): Swift_Transport_EsmtpTransport->doHeloCommand()\n#1 /var/www/site.com/html/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php(65): Swift_Transport_AbstractSmtpTransport->start()\n#2 /var/www/site.com/html/includes/cf2.inc.php(39): Swift_Mailer->send()\n#3 /var/www/site.com/html/includes/cf2.inc.php(42): sendVerificationEmail()\n#4 {main}\n thrown in /var/www/site.com/html/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php on line 349
我已经做了很多搜索,似乎可以做到这一点,但我找到的答案似乎要么含糊不清,要么回答类似于“但你为什么要这样做?”
我希望有人能指出我正确的方向来完成以下任务:
当前设置
访客 -> Cloudflare 代理 -> Web 服务器
Cloudflare DNS 代理位于我在 Digital Ocean VPS 上的 Web 服务器前面。访问者将 mydomain.com 放入 Web 浏览器,然后我的网站就会显示出来。如果该访问者要使用 SecurityTrails 等来查找谁在托管该网站,则会显示为 Cloudflare。
目标
访客 -> Cloudflare 代理 -> 反向 VPN 隧道(来自 VPN 服务) -> Web 服务器
如果这不能通过 Cloudflare 代理完成,那么我只会将 Cloudflare 用于 DNS。
我知道 VPN 服务很容易加密到网站的传出连接,但是入站连接呢?可以在 VPS 上将允许端口转发(ExpressVPN、PureVPN、PIA)的 VPN 服务配置为公共反向 VPN,因此当访问者将 mydomain.com 放入 Web 浏览器时,他们可以访问我的网站,就像使用 VPN 隧道一样不在那里?然后,减去 Cloudflare,如果该访问者要查找谁在托管该网站,它将显示 VPN 的名称,因为这将是他们的 IP 地址。
我从哪里开始?如果我最终需要聘请某人来实施,这将被称为什么?是否有指南解释创建这种类型的 VPN 隧道?
预先感谢您的帮助!
我正在尝试在 Digital Ocean Kubernetes 集群中设置 Jenkins。我正在使用 NGINX 入口控制器,因为我想从子域(jenkins.example.com)访问我的服务器。到目前为止一切正常,我在所述域上使用自定义证书保护了我的 UI。在尝试将代理(或我在其他地方读到的从属设备?)连接到服务器时,我开始遇到问题。
我试过的
我试图设置一个负载均衡器,但由于我使用的是 Digital Ocean 并且我发现的大多数文档都是针对 GKE / EKS 和其他具有自己内部 LB 的文档,所以我无法让它工作。我还尝试在服务的端口名称上映射路由/agents
,然后在另一个具有“ClusterIP”类型的服务上映射,但没有成功(从 Jenkins 中找不到)。
我目前的配置
詹金斯部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-dep
labels:
app: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts-jdk11
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
- containerPort: 50000
詹金斯-service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins-svc
labels:
app: jenkins
spec:
type: NodePort
selector:
app: jenkins
ports:
- name: ui
protocol: TCP
port: 8080
targetPort: 8080
nodePort: 32500
- name: agents
protocol: TCP
port: 50000
targetPort: 50000
nodePort: 32501
詹金斯入口.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins-ingress
spec:
tls:
- hosts:
- jenkins.example.com
secretName: tls-secret
rules:
- host: jenkins.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins-svc
port:
name: ui
#- path: /agents
# pathType: Prefix
# backend:
# service:
# name: jenkins-svc
# port:
# name: agents
底线是:我如何使 Jenkins 端口 50000 可供代理连接到我的服务器上?或者我如何更改 Jenkins 设置以适应这样的配置?
我正在使用我在 DigitalOcean 上使用 Packer 制作的自定义图像构建服务器,并且我遇到了一个反复出现的问题,即 journalctl 没有任何日志:
# journalctl
No journal files were found.
有时我对我构建的图像有这个问题,有时我没有。有时,由同一映像构建的一台服务器可以工作,而另一台则不能。
我还注意到,如果我非常快速地登录到服务器,有时 journalctl 最初可以工作,但很快就会中断(<1 分钟后)。
如果我重新启动 journald,那么从那时起它会正常工作,但我会丢失在那之前的所有日志。
我有一台具有 32 GB RAM 和 16 个线程的服务器。该服务器在 PHP 中有一个 API,它接收来自其他外部 API 的许多请求,我在 PHP-FPM 中进行了配置以支持所有这些请求而不会降低站点速度,这在 1 年内运行良好,现在请求实际上翻了一番,这正在离开网站页面很慢,加载需要 5-6 秒,这是不正常的。也许我必须在 PHP-FPM 中重做一个配置来支持这种对请求的新需求,在这种情况下你会怎么做?
我的服务器有 32 GB 的 RAM,但只使用 2.5 GB,可以吗?是否可以在 RAM 和 CPU 之间保持平衡以提高 CPU 性能还是我在胡说八道?
pm.max_children = 32
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 1000
运行进程的 PHP-FPM 有 32 个子级。
我正在尝试设置电子邮件服务器。我似乎无法为我打开 25 端口。我真的只是做了:
ufw disable
ufw reset
ufw default deny incoming
ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 25
sudo ufw enable
接着sudo ufw status verbose…
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
25 ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
25 (v6) ALLOW IN Anywhere (v6)
然而,粗略一瞥 sudo netstat -tulpn | grep 听和..
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 512/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 664/sshd: /usr/sbin
tcp6 0 0 :::22 :::* LISTEN 664/sshd: /usr/sbin
和telnet [my server IP] 25
:
telnet: Unable to connect to remote host: Connection refused
是什么赋予了?如何打开我的端口?
更新
根据这里用户的建议,我决定现在安装 Postfix 并再次检查端口是否正在被确认..
sudo netstat -tulpn | grep LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 512/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 664/sshd: /usr/sbin
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 43246/master
tcp6 0 0 :::22 :::* LISTEN 664/sshd: /usr/sbin
tcp6 0 0 :::25 :::* LISTEN 43246/master
和
telnet [my server IP] 25
Trying [my server IP]...
Connected to [my server IP]
Escape character is '^]'.
220 ubuntu-s-1vcpu-1gb-lon1-01 ESMTP Postfix (Ubuntu)
它似乎已连接,但这是否意味着端口已打开?