AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-34560

Gaia's questions

Martin Hope
Gaia
Asked: 2019-12-04 10:22:40 +0800 CST

RAID 1 可靠性:4 个驱动器与 2 个驱动器 + 2 个备用驱动器

  • 1

哪个可能更可靠(更安全的数据 + 更少的停机时间):

在 RAID 1 中有 4 个驱动器或在 RAID 1 中有 2 个驱动器加上 2 个备用?

换句话说,当您使用 4 个驱动器设置 RAID 1 时,拥有备件是否有优势?

背景:这是对当前稳定的 Linux 发行版的 MDADM 突袭。磁盘是企业级的。RAID 1 中的分区是根分区(最少写入),因此写入性能不是问题。硬件允许热插拔 HDD。在相同 4 个 HDD 的另一个分区上,我为写入密集型应用程序运行了 RAID 10。

raid
  • 1 个回答
  • 165 Views
Martin Hope
Gaia
Asked: 2019-05-18 19:30:41 +0800 CST

交换文件挂载(/etc/fstab):“交换交换”或“无交换”

  • 4

关于如何挂载交换文件的信息似乎存在冲突。

swap swap:

在此处输入图像描述

none swap:

在此处输入图像描述

两者:

在此处输入图像描述

两种方式都有效。官方建议是什么?每种方式如何影响交换?

mount
  • 1 个回答
  • 2710 Views
Martin Hope
Gaia
Asked: 2018-07-26 16:13:03 +0800 CST

Ubuntu 默认为 IPv6,应默认为 IPv4

  • 3

带有内核 4.4 的 Ubuntu 16.04.5 曾经按预期工作:IPv4 是默认设置。由于更改为内核 (hwe) 4.15,它默认使用 IPv6。

它通过 Tunnelbroker 提供 IPv6,由路由器广播。

现在默认为 IPv6:curl ifconfig.co返回机器的 IPv6。仅curl -4 ifconfig.co返回所需的 IPv4 地址。(curl -6 ifconfig.co如预期返回 IPv6)

$ ip rule list
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

$ ip -6 rule list
0:      from all lookup local
32766:  from all lookup main

$ ip route list
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.x

$ ip -6 route list
2001:470:x:999::9999:f6a dev eth0  proto kernel  metric 256  pref medium
2001:470:x:999::/64 dev eth0  proto kernel  metric 256  expires 42905sec pref medium
fe80::/64 dev eth0  proto kernel  metric 256  pref medium
default via fe80::2ac6:8eff:fe65:d117 dev eth0  proto ra  metric 1024  expires 1505sec hoplimit 64 pref medium

PS:一些提供商仍然报告 IPv4,例如curl ipinfo.io/ip。我已经使用 ifconfig.co 很长时间了,所以我不确定他们是否更改了设置(不太可能)或者内核升级使 Ubuntu 更喜欢 IPv6。

如何找出导致首选 IPv6 的原因?

routing
  • 2 个回答
  • 9367 Views
Martin Hope
Gaia
Asked: 2018-07-25 13:12:14 +0800 CST

从 Wireguard 隧道中排除 fwmark(ed) 数据包

  • 2

在此处描述的场景中,我最终在客户端中使用了此配置(端点 WG 服务器有两个公共 IP)

[Interface]
Address = <ip_to_use>/32
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
AllowedIPs = 0.0.0.0/0
Endpoint = <wg_server_ip>:51820
PersistentKeepalive = 10

现在我想从 Wireguard 隧道中排除来自用户的所有进程或所有数据包(往返)某些端口。

我注意到这可以使用 WG 自己设置的 fwmark 来完成,我不需要使用其他标记,如建议的here。

这是 Ubuntu 16.04 上的 IPtables 1.6。如何使用 wg-quick 创建的标记从 WG 隧道中排除每个用户或每个端口?

iptables
  • 1 个回答
  • 1986 Views
Martin Hope
Gaia
Asked: 2018-07-14 09:34:08 +0800 CST

使用非默认路由作为非特权用户

  • 0

在 Ubuntu 16.04 上,IPv4 的默认路由是 eth0 以外的接口。

如果我尝试

curl -vvv --interface eth0 v4.ifconfig.co

我明白了

* SO_BINDTODEVICE eth0 failed with errno 1: Operation not permitted; will do regular bind

但如果我sudo工作得很好。

如何更改配置,以便在此非特权用户下运行的服务可以将 eth0 用于 IPv4?我不认为我可以更改 sudo 配置以允许这样做,因为我不希望该服务以 root 身份运行任何东西。我还想在当前接口上维护 IPv4 的默认路由。

ubuntu
  • 2 个回答
  • 687 Views
Martin Hope
Gaia
Asked: 2018-06-20 21:31:57 +0800 CST

Wireguard VPN 出站和入站

  • 0

我正在尝试设置一个 Wireguard 隧道,以便 A 将 B 的 IP 用于出站和入站流量(如代理,而不是标准 VPN 配置)。两个盒子都是 Ubuntu 16.04。

A 是 eth0,位于具有 NAT 和 DMZ 的路由器后面,具有 IP A

B 有两个公共 IP:一个主 IP(ens3 aka B1)和一个辅助 IP(ens3:0 aka B2)。第二个应该专用于 WG 隧道。

A上的工作组:

Interface Address = 10.200.1.2/24 SaveConfig = true ListenPort = 50614 FwMark = 0xca6c PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [Peer] PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy AllowedIPs = 0.0.0.0/0 Endpoint = <B2>:51820 PersistentKeepalive = 10

B 工作组:

[Interface] Address = 10.200.1.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [Peer] PublicKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz AllowedIPs = 10.200.1.0/24 Endpoint = A:50614

A路线:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

B路线:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 B1.B1.B1.1 0.0.0.0 UG 0 0 0 ens3 B2.B2.B2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens3 B1.B1.B1.0 0.0.0.0 255.255.254.0 U 0 0 0 ens3 169.254.169.254 B1.B1.B1.1 255.255.255.255 UGH 0 0 0 ens3

我需要添加哪条路由,以便来自 A 的每个出站数据包都通过 B2 发出,并且每个入站到 B2 的数据包都发送到 A?

ubuntu
  • 1 个回答
  • 2954 Views
Martin Hope
Gaia
Asked: 2018-05-15 14:10:00 +0800 CST

优化 LVM 设置以不断增加单个挂载点的空间

  • 0

VPS设置如下

名称 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 只读存储器
vda 253:0 0 60G 0 磁盘
├─vda1 253:1 0 9.8G 0 部分 /
└─vda2 253:2 0 50.2G 0 部分
  └─VolGroup1-LogVol1 252:0 0 50.2G 0 lvm /mnt/lvm1
vdb 253:16 0 10G 0 磁盘
磁盘 /dev/vda:60 GiB,64424509440 字节,125829120 个扇区
单位:1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节/512 字节
I/O 大小(最小/最佳):512 字节/512 字节
磁盘标签类型:dos
磁盘标识符:XXXXXXXX
.
设备引导开始结束扇区大小 ID 类型
/dev/vda1 * 2048 20482047 20480000 9.8G 83 Linux
/dev/vda2 20482048 125829119 105347072 50.2G 83 Linux
.
磁盘 /dev/vdb:10 GiB,10737418240 字节,20971520 个扇区
单位:1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节/512 字节
I/O 大小(最小/最佳):512 字节/512 字节
磁盘标签类型:gpt
磁盘标识符:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
.
设备开始结束扇区大小类型
/dev/vdb1 2048 20969471 20967424 10G Linux 文件系统
.
磁盘 /dev/mapper/VolGroup1-LogVol1:50.2 GiB,53934555136 字节,105340928 个扇区
单位:1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节/512 字节
I/O 大小(最小/最佳):512 字节/512 字节

/dev/vdb/ 是最初 10GB 大小的单块存储卷。稍后我将在此块存储中添加更多空间。或者可以添加更多块存储(/dev/vdc、/dev/vdc 等)。

我需要将它挂载到 /mnt/lvm1。使用此文件夹的应用程序将需要更多空间,我不能让它们使用多个文件夹。

保持向单个挂载点添加空间的最佳设置是什么?当然,我可以将VolGroup1-LogVol1扩展到 /dev/vdb1,但是还有其他更容易管理的方法吗?这可以是不同的 PV/VG/LV 设置和/或使用多个块存储的形式。

ubuntu
  • 1 个回答
  • 177 Views
Martin Hope
Gaia
Asked: 2016-11-09 12:10:11 +0800 CST

优化 S3 策略以实现完全访问

  • 1

我制定了以下政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserToSeeBucketListInTheConsole",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllooUserFullAccessToBucket",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket/*"
            ]
        }
    ]
}

通过 Key/Secret(使用 Cloudberry Explorer)访问存储桶时,我可以:

  • 列出所有存储桶
  • 列出、下载、上传和删除到mybucket中,但前提是在存储桶权限上也有此权限:

在此处输入图像描述

或者

我需要在策略中添加另一个项目以取消存储桶级别权限要求:

{
    "Sid": "AllooUserFullAccessToBucketPre",
    "Effect": "Allow",
    "Action": [
        "s3:*"
    ],
    "Resource": [
        "arn:aws:s3:::mybucket"
    ]
},

是否存在允许策略中只有 2 个项目(AllowUserToSeeBucketListInTheConsole 和单个 AllooUserFullAccessToBucket)而不需要存储桶级别权限的语法?

amazon-s3 amazon-web-services
  • 2 个回答
  • 118 Views
Martin Hope
Gaia
Asked: 2016-10-04 10:46:25 +0800 CST

Rsyslog 8 在退出时挂起

  • 2

在 Ubuntu 16.04.1 上运行:

rsyslogd 8.16.0, compiled with:
        PLATFORM:                               x86_64-pc-linux-gnu
        PLATFORM (lsb_release -d):
        FEATURE_REGEXP:                         Yes
        GSSAPI Kerberos 5 support:              Yes
        FEATURE_DEBUG (debug build, slow code): No
        32bit Atomic operations supported:      Yes
        64bit Atomic operations supported:      Yes
        memory allocator:                       system default
        Runtime Instrumentation (slow code):    No
        uuid support:                           Yes
        Number of Bits in RainerScript integers: 64

和:

#rsyslogd -N1
rsyslogd: version 8.16.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.16.0 try http://www.rsyslog.com/e/2222 ]

如果以下配置生效,则在服务停止时挂起:

$ModLoad imfile

##########
# MySQL slow query log (standard log is autosent to syslog):

$InputFileName /var/log/mysql/mysql-slow.log
$InputFileTag mysqld_slow:
$InputFileStateFile state-mysqld_slow
$InputFileSeverity info
$InputRunFileMonitor

##########
# Apache access:

###
$InputFileName /var/log/virtualmin/mysite.com_access_log
$InputFileTag www-access-mysite.com:
$InputFileStateFile state-www-access-mysite.com
$InputFileSeverity info
$InputRunFileMonitor


##########
# Apache Error:

###
$InputFileName /var/log/virtualmin/mysite.com_error_log
$InputFileTag www-errors-mysite.org:
$InputFileStateFile state-www-errors-mysite.com
$InputFileSeverity error
$InputRunFileMonitor

### Main Error Log
$InputFileName /var/log/apache2/error.log
$InputFileTag www-errors-main:
$InputFileStateFile state-www-errors
$InputFileSeverity error
$InputRunFileMonitor

# Setup disk assisted queues
$ActionQueueFileName fwdRule1     # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g       # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on     # save messages to disk on shutdown
$ActionQueueType LinkedList       # run asynchronously
$ActionResumeRetryCount -1        # infinite retries if host is down

#RsyslogGnuTLS
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/keys/ca.d/certs.crt

###
###First BLOCK
###

template(name="access" type="string" string="<%pri%>%protocol-version% %timestamp:::date-rfc3339% Host1 %app-name% %procid% %msgid% [id@40000 tag=\"access\"] %msg%\n")
template(name="errors" type="string" string="<%pri%>%protocol-version% %timestamp:::date-rfc3339% Host1 %app-name% %procid% %msgid% [id@40000 tag=\"errors\"] %msg%\n")

# Send messages over TCP using the template.
:syslogtag, startswith, "www-access" action(type="omfwd" protocol="tcp" target="logs.com" port="6000" template="access" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.logs.com")

:syslogtag, startswith, "www-error" action(type="omfwd" protocol="tcp" target="logs.com" port="6000" template="errors" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.logs.com")

###
###Second BLOCK
###

template(name="standard" type="string" string="<%pri%>%protocol-version% %timestamp:::date-rfc3339% Host1 %app-name% %procid% %msgid% %msg%\n")

# Send messages over TCP using the template.
:syslogtag, startswith, "www-access" action(type="omfwd" protocol="tcp" target="logs.other.com" port="38549" template="standard" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.other.com")
:syslogtag, startswith, "www-errors" action(type="omfwd" protocol="tcp" target="logs.other.com" port="38549" template="standard" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.other.com")
:syslogtag, startswith, "mysqld" action(type="omfwd" protocol="tcp" target="logs.other.com" port="38549" template="standard" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.other.com")

如果通过运行,rsyslogd -dn您可以看到:

9744.300605710:main thread    : main Q: EnqueueMsg advised worker start
9744.300724026:main thread    : Terminating main queue...                                                                                                 9744.300734161:main thread    : main Q: initiating worker thread shutdown sequence
9744.300739666:main thread    : main Q: trying shutdown of regular workers
9744.300766918:main thread    : sent SIGTTIN to worker thread 0x9b57a700
9744.300776037:main Q:Reg/w0  : wti 0x16756a0: worker awoke from idle processing
9744.300782296:main Q:Reg/w0  : DeleteProcessedBatch: we deleted 0 objects and enqueued 0 objects
9744.300786960:main Q:Reg/w0  : doDeleteBatch: delete batch from store, new sizes: log 0, phys 0
9744.300791987:main Q:Reg/w0  : regular consumer finished, iret=4, szlog 0 sz phys 0
9744.300797344:main Q:Reg/w0  : wti 0x16756a0: terminating worker terminateRet=5, bInactivityTOOccured=0
9744.300803075:main Q:Reg/w0  : DDDD: wti 0x16756a0: worker cleanup action instances
9744.300807699:main Q:Reg/w0  : wti 0x16756a0, action 0, ptr 0x7f1394004210
9744.300825960:main Q:Reg/w0  : wti 0x16756a0, action 1, ptr 0x7f1394038f80
9744.300835440:main Q:Reg/w0  : wti 0x16756a0, action 2, ptr 0x7f13940022a0
9744.300875784:main Q:Reg/w0  : wti 0x16756a0, action 3, ptr 0x7f1394004470
9744.300885088:main Q:Reg/w0  : wti 0x16756a0, action 4, ptr (nil)
9744.300890048:main Q:Reg/w0  : wti 0x16756a0, action 5, ptr (nil)
9744.300894505:main Q:Reg/w0  : wti 0x16756a0, action 6, ptr (nil)
9744.300898883:main Q:Reg/w0  : wti 0x16756a0, action 7, ptr (nil)
9744.300903665:main Q:Reg/w0  : wti 0x16756a0, action 8, ptr (nil)
9744.300908515:main Q:Reg/w0  : wti 0x16756a0, action 9, ptr (nil)
9744.300912910:main Q:Reg/w0  : wti 0x16756a0, action 10, ptr 0x7f13940023f0
9744.300918720:main Q:Reg/w0  : wti 0x16756a0, action 11, ptr 0x7f13940068f0
9744.300941837:main Q:Reg/w0  : wti 0x16756a0, action 12, ptr 0x7f13940504b0
9744.300951981:main Q:Reg/w0  : wti 0x16756a0, action 13, ptr 0x7f1394462e10
9744.301055305:main thread    : main Q:Reg: waiting 1499ms on worker thread termination, 1 still running
9745.800919600:main thread    : main Q:Reg: timeout waiting on worker thread termination
9745.800976996:main thread    : sent SIGTTIN to worker thread 0x9b57a700
9745.801024045:main thread    : main Q: regular shutdown timed out on primary queue (this is OK)
9745.801030518:main thread    : main Q: checking to see if we need to cancel any worker threads of the primary queue
9745.801035688:main thread    : sent SIGTTIN to worker thread 0x9b57a700, giving it a chance to terminate
9745.811204331:main thread    : cooperative worker termination failed, using cancellation...
9745.811246502:main thread    : wti 0x16756a0: canceling worker thread

根据支持论坛中此线程中的建议,我已经尝试在关闭防火墙的情况下启动/停止(我没有得到任何帮助)

strace 的尾部显示

6700  14:13:02 write(6, "Oct  6 14:13:02 hostname rsyslogd: [origin software=\"rsyslogd\" swVersion=\"8.16.0\" x-pid=\"6696\" x-info=\"http://www.rsyslog.com\"] exiting on signal 15.\n", 146) = 146
6700  14:13:02 futex(0x1a3516c, FUTEX_WAIT_PRIVATE, 99, NULL <unfinished ...>
6696  14:13:02 <... futex resumed> )    = 1
6696  14:13:02 futex(0x1a3516c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a35168, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
6700  14:13:02 <... futex resumed> )    = 0
6700  14:13:02 futex(0x1a34f80, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
6696  14:13:02 <... futex resumed> )    = 1
6696  14:13:02 tgkill(6696, 6700, SIGTTIN <unfinished ...>
6700  14:13:02 <... futex resumed> )    = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
6700  14:13:02 --- SIGTTIN {si_signo=SIGTTIN, si_code=SI_TKILL, si_pid=6696, si_uid=104} ---
6700  14:13:02 rt_sigreturn({mask=~[KILL STOP TTIN RTMIN RT_1]}) = -1 EINTR (Interrupted system call)
6700  14:13:02 futex(0x1a34f80, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
6696  14:13:02 <... tgkill resumed> )   = 0
6696  14:13:02 futex(0x1a34f80, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
6700  14:13:02 <... futex resumed> )    = 0
6700  14:13:02 futex(0x1a34f80, FUTEX_WAKE_PRIVATE, 1) = 0
6700  14:13:02 writev(14, [{"\25\3\3\0\32\0\0\0\0\0\0\1qv\373\273}\275\276\252\207\\~\7\343p\237[\343'\363", 31}], 1) = 31
6700  14:13:02 recvfrom(14,  <unfinished ...>
6696  14:13:02 <... futex resumed> )    = 1
6696  14:13:02 futex(0x1a35014, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, {1475763183, 729652779}, ffffffff <unfinished ...>
6700  14:13:02 <... recvfrom resumed> "\25\3\3\0\32", 5, 0, NULL, NULL) = 5
6700  14:13:02 mprotect(0x7fd3145d8000, 16384, PROT_READ|PROT_WRITE) = 0
6700  14:13:02 recvfrom(14, "w_\345'\310\3473\3\\q\32 \37\276\237A\270a\260\200\24\34p\262G\277", 26, 0, NULL, NULL) = 26
6700  14:13:02 close(14)                = 0
6700  14:13:02 writev(25, [{"\25\3\3\0\32\0\0\0\0\0\0\1\20\3535\fh\5\324bZ\211U\203AX.\37\205`m", 31}], 1) = 31
6700  14:13:02 recvfrom(25, "\25\3\3\0\32", 5, 0, NULL, NULL) = 5
6700  14:13:02 recvfrom(25, "\307y\343\27z#\31\373\232\333\371\263\275R\203\31\332?)>\201\245\301z\335;", 26, 0, NULL, NULL) = 26
6700  14:13:02 close(25)                = 0
6700  14:13:02 writev(24, [{"\25\3\3\0000\26f\310\217\23\247d?\4\3\301\252\277+\207\250q[9L\306\274\2414}\306\237\253X\221\35\27:\376\206\203\36PP\177\363\362I\321\223\372\203W", 53}], 1) = 53
6700  14:13:02 recvfrom(24,  <unfinished ...>
6696  14:13:03 <... futex resumed> )    = -1 ETIMEDOUT (Connection timed out)
6696  14:13:03 tgkill(6696, 6700, SIGTTIN) = 0
6700  14:13:03 <... recvfrom resumed> 0x7fd31449c17b, 5, 0, NULL, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
6700  14:13:03 --- SIGTTIN {si_signo=SIGTTIN, si_code=SI_TKILL, si_pid=6696, si_uid=104} ---
6700  14:13:03 rt_sigreturn({mask=~[KILL STOP TTIN RTMIN RT_1]}) = -1 EINTR (Interrupted system call)
6700  14:13:03 recvfrom(24,  <unfinished ...>
6696  14:13:03 futex(0x1a34fe8, FUTEX_WAKE_PRIVATE, 1) = 0
6696  14:13:03 tgkill(6696, 6700, SIGTTIN) = 0
6700  14:13:03 <... recvfrom resumed> 0x7fd31449c17b, 5, 0, NULL, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
6700  14:13:03 --- SIGTTIN {si_signo=SIGTTIN, si_code=SI_TKILL, si_pid=6696, si_uid=104} ---
6700  14:13:03 rt_sigreturn({mask=~[KILL STOP TTIN RTMIN RT_1]}) = -1 EINTR (Interrupted system call)
6700  14:13:03 recvfrom(24,  <unfinished ...>
6696  14:13:03 select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout.)
6696  14:13:03 select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout.)
6696  14:13:03 select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout.)
6696  14:13:03 select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout.)
.
.
.
and it repeats until
6696  14:14:32 select(0, NULL, NULL, NULL, 0x7ffe5e77b200 <ptrace(SYSCALL):No such process>
6700  14:14:32 +++ killed by SIGKILL +++
6696  14:14:32 +++ killed by SIGKILL +++
rsyslog
  • 1 个回答
  • 586 Views
Martin Hope
Gaia
Asked: 2015-10-27 16:28:40 +0800 CST

当 VPN 在 DD-WRT 路由器和单独的 VPN/直接客户端上停止时,如何阻止互联网访问?

  • 1

我正在使用 DD-WRT 3.0 路由器通过 openVPN 进行连接。在 LAN 中,192.168.1.50 是一个不应该通过 VPN 的设备。

(如何设置防火墙让 192.168.1.50 不通过 VPN 以及 当 VPN 断开/掉线时如何使所有其他 IP 失去 WAN 连接?)

或者

(创建两个子网,一个通过 VPN(wi-fi 设备),另一个直接(有线设备) , 当 VPN 掉线时让 VPN 子网失去 WAN 连接)

我对这两种设置都没有偏好。什么都容易。

此规则不起作用(对于第一种情况):

iptables -I FORWARD ! -o tun1 -s 192.168.1.50 -j DROP

这是正在使用的路由表,路由器处于网关模式:

在此处输入图像描述

vpn
  • 2 个回答
  • 3899 Views
Martin Hope
Gaia
Asked: 2015-03-18 01:56:04 +0800 CST

此 SSL 证书链是否损坏以及如何修复?

  • 13

对于域 example.com 上的 SSL 证书,一些测试告诉我该链是不完整的,并且由于 Firefox 保留自己的证书存储,它可能在 Mozilla ( 1、2、3 ) 上失败。其他人告诉我这很好,Firefox 36 也一样,它告诉我证书链很好。

更新:我在 Windows XP 和 MacOS X Snow Leopard 上的 Opera、Safari、Chrome 和 IE 上进行了测试,它们都运行良好。它仅在两个操作系统上的 Firefox < 36 上失败。我无法在 Linux 上进行测试,但对于这个网站来说,它的访问者不到 1%,而且大多数可能是机器人。因此,这回答了最初的问题“此设置是否在 Mozilla Firefox 中显示警告”和“此 SSL 证书链是否损坏?”。

因此,问题是如何找出我需要在 ssl.ca 文件中放置哪些证书,以便 Apache 可以为它们提供服务以防止 Firefox < 36 阻塞?

PS:附带说明一下,我用来测试证书的 Firefox 36 是全新安装的。它不可能不抱怨,因为它在之前访问使用相同链的站点期间下载了中间证书。

ssl
  • 2 个回答
  • 35539 Views
Martin Hope
Gaia
Asked: 2014-11-21 18:34:42 +0800 CST

OpenShift cron 不运行

  • 1

我有以下文件

[subdomain.rhcloud.com minutely]\> pwd
/var/lib/openshift/username/app-root/repo/.openshift/cron/minutely
[subdomain.rhcloud.com minutely]\> ls -lha
total 4.0K
drwx------. 2 username username 24 Nov 20 21:08 .
drwx------. 3 username username 21 Nov 20 20:46 ..
-rwxr-xr-x. 1 username username 73 Nov 20 20:54 ticktock.sh
[subdomain.rhcloud.com minutely]\> cat ticktock.sh
*/1 * * * * username php ../../../cron/status.cron.php

[subdomain.rhcloud.com minutely]\> php ../../../cron/status.cron.php
[subdomain.rhcloud.com minutely]\> 

如图所示,文件内容执行良好。文件权限似乎正确。但Cron 1.4墨盒似乎没有触发 ticktock.sh。

所以我尝试手动调用它:

[subdomain.rhcloud.com minutely]\> ./ticktock.sh
./ticktock.sh: line 1: */1: No such file or directory

它告诉我那里存在的文件不存在。

所以我尝试了php的完整路径,

[subdomain.rhcloud.com minutely]\> /opt/rh/php54/root/usr/bin/php -v
PHP 5.4.16 (cli) (built: Oct 23 2014 05:04:35) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

和 ticktock.sh 成为

[subdomain.rhcloud.com minutely]\> cat ticktock.sh
*/1 * * * * 546e69f54382ec6013000027 /opt/rh/php54/root/usr/bin/php ../../../cron/status.cron.php

但它仍然无法通过 cron 或命令行执行

[subdomain.rhcloud.com minutely]\> ./ticktock.sh
./ticktock.sh: line 1: */1: No such file or directory

我在这里想念什么?!

redhat
  • 1 个回答
  • 721 Views
Martin Hope
Gaia
Asked: 2014-10-04 12:02:00 +0800 CST

Apache 配置重定向只使用重定向,而不是重写

  • 0

PS:这是最初发布在这里的问题的第二部分。

我想为特定的虚拟主机完全禁用HSTS 标头。对于这些虚拟主机中的每一个,我(根据建议)在 443 容器中都有一个重定向。它工作正常,但除非绝对必要,否则Apache不建议使用RewriteRule 。是否可以仅使用Redirect而不是 rewrite来执行下面的重定向?

<VirtualHost x.x.x.x:443>
<IfModule mod_headers.c>
Header unset Strict-Transport-Security
Header always set Strict-Transport-Security "max-age=0;includeSubDomains"
</IfModule>
SuexecUserGroup "#520" "#520"
ServerName dev.domain.com
ServerAlias www.dev.domain.com
ServerAlias subdomainjr2b.dev.domain.com
ServerAlias www.subdomainjr2b.dev.domain.com
ServerAlias subdomainblah.dev.domain.com
ServerAlias www.subdomainblah.dev.domain.com
RewriteEngine On
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [redirect=302]

PS1:Domain.com 有一个通配符证书,通配符只对 sub.domain.com 有效,对 sub.sub.domain.com 无效,因此需要为这些虚拟主机禁用 hsts。

PS2:不要问我为什么要Header unset在我已经使用的时候使用Header always set。它在实现之前向客户端发送了两个标头,据Header unset我所知,它不应该。

apache-2.2
  • 1 个回答
  • 190 Views
Martin Hope
Gaia
Asked: 2014-09-18 16:28:22 +0800 CST

后缀:仅在未指定直接传递时使用中继主机

  • 1

我阅读了使用带有 Postfix 2.6.6的中继主机。可以为不同的发件人使用具有不同凭据的不同中继主机。但是我如何使用特定发件人的直接递送(在这种情况下,只有一个发件人),而所有其他邮件都通过单个中继主机/凭据(在这种情况下,Sendgrid)发送。

背景:所有邮件都是事务性的,由运行 Postfix 的 LAMP 服务器上不同域上的 Web 应用程序生成。这些域中的任何一个都没有 MX 记录指向该服务器(它们主要是谷歌应用程序)。除一个以外的所有域都成功使用了sendmail>postfix>sendgrid>remote SMTP路由。这个域/应用程序需要直接发送(sendmail>postfix>remote SMTP)以实现更好的传递跟踪。我不想通过SwiftMailer本身使用直接传递,因为它会在应用程序的邮件处理中引入延迟。我希望 SwiftMailer 使用Swift_SendmailTransport并通过 Postfix 传递,然后我们将梳理 Postfix 日志以查找传递失败。

postfix
  • 1 个回答
  • 1872 Views
Martin Hope
Gaia
Asked: 2014-08-20 02:18:37 +0800 CST

如何在双 PHP 版本 CentOS 6 中安装 mcrypt?

  • 2

我通过这种方法在 CentOS 6.5 上安装了两个并行版本的 PHP

[root@host ~]# php -i | grep "PHP Version"
PHP Version => 5.3.3
[root@host ~]# /opt/rh/php54/root/usr/bin/php -i | grep "PHP Version"
PHP Version => 5.4.16

安装来自

[root@host ~]# rpm -q php php-mcrypt
php-5.3.3-27.el6_5.1.x86_64
php-mcrypt-5.3.3-3.el6.x86_64
[root@host ~]# rpm -q php54 php54-mcrypt
php54-1-7.el6.centos.alt.x86_64
package php54-mcrypt is not installed
[root@host ~]# rpm -q libmcrypt
libmcrypt-2.5.8-4.el6.art.x86_64
[root@host ~]# rpm -q libmcrypt-devel
libmcrypt-devel-2.5.8-4.el6.art.x86_64

在运行 PHP 5.3.3 的站点上,mcrypt 工作正常。我需要让运行 5.4.16 的站点可以使用 mcrypt。自然我尝试yum install php54-mcrypt了,但它返回No package php54-mcrypt available.。启用了以下存储库:

asl-4.0 
base 
epel 
extras 
scl 
updates 
virtualmin 
virtualmin-universal

所以我搜索了一个 RPM,并找到了这个. 但是,如果我尝试安装此 RPM,它会尝试更新当前的 PHP mcrypt,我需要在 5.3.3 上为站点继续运行它。我的印象是 php-mcrypt 需要与 php 版本完全一致,并且不向后兼容。

我需要为 PHP 5.4.16 安装 mcrypt,其中 PHPZTS="" 和 PHPAPI=20100525。我怎样才能做到这一点?

centos
  • 2 个回答
  • 4094 Views
Martin Hope
Gaia
Asked: 2014-08-18 10:58:43 +0800 CST

如何配置 rsyslog 来处理 MySQL 慢查询日志多行消息?

  • 3

使用 rsyslog v8.2.2,我想对多行消息进行分组,例如 MySQL 慢查询日志输出的消息。

每条新消息都以三个连续的行开头,其中第一个字符为“#”,尽管有些消息只有两行在消息开头有一个“#”。(我怀疑由 PHP cli 而不是标准 PHP 触发的查询不带有 # Time:标记)。例子:

# Time: 140817  0:59:22
# User@Host: root[root] @ localhost []
# Query_time: 5.864315  Lock_time: 0.000033 Rows_sent: 857715  Rows_examined: 857715
SET timestamp=1408237162;
SELECT /*!40001 SQL_NO_CACHE */ * FROM `sales_flat_quote_shipping_rate`;
# Time: 140817  1:00:06
# User@Host: user2[user2] @ localhost []
# Query_time: 4.070595  Lock_time: 0.000068 Rows_sent: 0  Rows_examined: 1536
use db2;
SET timestamp=1408237206;
DELETE FROM `catalog_product_index_price_idx`;
# User@Host: db3[db3] @ localhost []
# Query_time: 3.892674  Lock_time: 0.046493 Rows_sent: 0  Rows_examined: 659
use db3;
SET timestamp=1408237206;
UPDATE user SET cert = 'yes' WHERE site_id < 10;
# Time: 140817  1:00:06
# User@Host: user2[user2] @ localhost []
# Query_time: 4.070595  Lock_time: 0.000068 Rows_sent: 0  Rows_examined: 1536
use db2;
SET timestamp=1408237206;
DELETE FROM `catalog_product_index_price_idx`;
# User@Host: db3[db3] @ localhost []
# Query_time: 3.892674  Lock_time: 0.046493 Rows_sent: 0  Rows_examined: 659
use db3;
SET timestamp=1408237206;
UPDATE user SET cert = 'yes' WHERE site_id < 10;

如何配置 rsyslog 以将它们作为单个消息发送?

rsyslog
  • 1 个回答
  • 1445 Views
Martin Hope
Gaia
Asked: 2014-08-02 05:49:45 +0800 CST

这个 bash shell 别名在哪里配置?

  • 0

以 root 身份登录到 CentOS 6.5 系统时,我运行

># alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

我想alias ll='ls -l --color=auto'为alias ll='ls -lha --color=auto'所有用户修改。cat /etc/bashrc和cat /root/.bashrc产量,分别为:

># cat /etc/bashrc
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

# are we an interactive shell?
if [ "$PS1" ]; then
  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    screen)
        if [ -e /etc/sysconfig/bash-prompt-screen ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    *)
        [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
        ;;
      esac
  fi
  # Turn on checkwinsize
  shopt -s checkwinsize
  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
  # You might want to have e.g. tty in prompt (e.g. more virtual machines)
  # and console windows
  # If you want to do so, just add e.g.
  # if [ "$PS1" ]; then
  #   PS1="[\u@\h:\l \W]\\$ "
  # fi
  # to your custom modification shell script in /etc/profile.d/ directory
fi

if ! shopt -q login_shell ; then # We're not a login shell
    # Need to redefine pathmunge, it get's undefined at the end of /etc/profile
    pathmunge () {
        case ":${PATH}:" in
            *:"$1":*)
                ;;
            *)
                if [ "$2" = "after" ] ; then
                    PATH=$PATH:$1
                else
                    PATH=$1:$PATH
                fi
        esac
    }

    # By default, we want umask to get set. This sets it for non-login shell.
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi

    # Only display echos from profile.d scripts if we are no login shell
    # and interactive - otherwise just process them to set envvars
    for i in /etc/profile.d/*.sh; do
        if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . "$i"
            else
                . "$i" >/dev/null 2>&1
            fi
        fi
    done

    unset i
    unset pathmunge
fi
# vim:ts=4:sw=4

和

># cat /root/.bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

它是 /etc/profile.d/colorls.sh 包含两个引用ll:

># cat /etc/profile.d/colorls.sh
# color-ls initialization

#when USER_LS_COLORS defined do not override user LS_COLORS, but use them.
if [ -z "$USER_LS_COLORS" ]; then

  alias ll='ls -l' 2>/dev/null
  alias l.='ls -d .*' 2>/dev/null


  # Skip the rest for noninteractive shells.
  [ -z "$PS1" ] && return

  COLORS=

  for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \
      "$HOME/.dir_colors" "$HOME/.dircolors"; do
    [ -e "$colors" ] && COLORS="$colors" && break
  done

  [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \
      [ "x`tty -s && tput colors 2>/dev/null`" = "x256" ] && \
      COLORS="/etc/DIR_COLORS.256color"

  if [ -z "$COLORS" ]; then
    for colors in "/etc/DIR_COLORS.$TERM" "/etc/DIR_COLORS" ; do
      [ -e "$colors" ] && COLORS="$colors" && break
    done
  fi

  # Existence of $COLORS already checked above.
  [ -n "$COLORS" ] || return

  eval "`dircolors --sh "$COLORS" 2>/dev/null`"
  [ -z "$LS_COLORS" ] && return
  grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return
fi

alias ll='ls -l --color=auto' 2>/dev/null
alias l.='ls -d .* --color=auto' 2>/dev/null
alias ls='ls --color=auto' 2>/dev/null

那么,我是否编辑/etc/profile.d/colorls.sh,如果是,在两个出现的地方ll?还是有更好的方法来解决它?

linux
  • 1 个回答
  • 1239 Views
Martin Hope
Gaia
Asked: 2014-04-01 19:26:36 +0800 CST

当处理器是 Ivy Bridge 时,为来宾 KVM 设置哪种 CPU 型号?

  • 1

对于具有Ivy Bridge 处理器的 KVM 主机,应在 Virtual Machine Manager 中将哪个MODEL用于CPU>CONFIGURATION ?常春藤桥不可用。

virtualization
  • 1 个回答
  • 6710 Views
Martin Hope
Gaia
Asked: 2014-03-26 13:49:27 +0800 CST

磁盘写入操作期间 CPU 使用率异常

  • 1

我有一个不错的 CentOS 6.5 专用主机(CentOS 6.5/E3-1230 3.2Ghz 四核 + HT/16GB/Software Raid 1 SATA II/ WD2503ABYX /ext4),默认 CentOS 内核和 grub 中的“elevator=deadline”。

I/O 写入操作会导致 CPU 使用率急剧上升。读取工作正常。例如,

dd if=/dev/zero of=test bs=1048576 count=2048

导致主机的 CPU 利用率飙升至 3 或 4 以上。在正常操作下,它保持在 0.40 以下,但当有一些更密集的 I/O 操作时,一切都会停止。

mpstat 1在这些dd测试中显示io 等待在 20-25%。

这是磁盘布局:

Disk /dev/sda: 251.1 GB, 251059544064 bytes
255 heads, 63 sectors/track, 30522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c6673

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         548     4194304   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.
/dev/sda3             548       30523   240775168   fd  Linux raid autodetect

Disk /dev/sdb: 251.1 GB, 251059544064 bytes
255 heads, 63 sectors/track, 30522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00095c99

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          26      204800   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sdb2              26         548     4194304   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.
/dev/sdb3             548       30523   240775168   fd  Linux raid autodetect

Disk /dev/md2: 246.6 GB, 246552588288 bytes
2 heads, 4 sectors/track, 60193503 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/md1: 4293 MB, 4293910528 bytes
2 heads, 4 sectors/track, 1048318 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/vg_main-LogVol00: 246.5 GB, 246549577728 bytes
255 heads, 63 sectors/track, 29974 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/md0: 209 MB, 209702912 bytes
2 heads, 4 sectors/track, 51197 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

问题(高 CPU 使用率)在去年 12 月下旬的某个时候开始发生,这让我相信它与软件有关(磁盘 susbsystem 已由 DC 的人检查过)。

我接下来应该运行哪些测试来尝试隔离问题?

PS:我不是在寻找性能最大化技巧。服务器未充分利用。我只是想减少磁盘写入期间的 CPU 负载。

更新:问题重新设计以更好地描述问题。

更新:找到解决方案当我遇到这篇文章时,我终于发现了问题所在。

root> modprobe vhost_net root> echo vhost_net > /etc/modules

由于某种原因,virtio 接口之前没有加载驱动程序。现在一切都很好。

linux
  • 1 个回答
  • 2576 Views
Martin Hope
Gaia
Asked: 2014-01-07 12:36:40 +0800 CST

CentOS 6.5 上的关机错误

  • 1

在 KVM 主机上,正常关闭来宾 KVM 后,我得到:

[root@kvm]# /sbin/shutdown -h now

Broadcast message from [email protected]
        (/dev/pts/1) at 15:23 ...

The system is going down for halt NOW!
**shutdown: Method "EmitEvent" with signature "sasb" on interface "com.ubuntu.Upstart0_6" doesn't exist**

而且我无法重新启动机器。-Ph 或 -r 也是如此。

谢谢

更新1:我将把这个问题搁置,直到下次我必须重新启动这台机器。

更新 2:reboot有效。

centos
  • 1 个回答
  • 722 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve