我正在尝试通过 Wireshark(实际上是 TShark)捕获多播流量,但是交换机启用了 IGMP 侦听,并且只会在具有活动 IGMP 订阅的端口上发送多播流量。
我目前正在通过一个单独的应用程序来解决这个问题,因为我希望记录的组保持打开状态,但我正在尝试设置一个系统来动态启动/停止记录数据,而这种额外的复杂性很痛苦。
有没有办法强制 Wireshark 为其录制的多播组发送 IGMP 订阅?
我有几个 python 网络服务,我试图在 Fedora 15 机器上运行。它们由 Paster 运行,启动它们的唯一区别是它们读取的配置文件。
这似乎很适合 systemd 的实例化服务,但我希望能够将它们作为一个单元进行控制。需要这两种服务的 systemd 目标似乎是解决这个问题的方法。启动目标确实会启动这两个服务,但停止目标会使它们继续运行。
这是服务文件:
[Unit]
Description=AUI Instance on Port %i
After=syslog.target
[Service]
WorkingDirectory=/usr/local/share/aui
ExecStart=/opt/cogo/bin/paster serve --log-file=/var/log/aui/%i deploy-%i.ini
Restart=always
RestartSec=2
User=aui
Group=aui
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是目标文件:
[Unit]
Description=AUI
Requires=aui@5001.service
Requires=aui@5002.service
After=syslog.target
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
systemd 甚至可以进行这种分组吗?
CentOS 5.7 VPS(在 OpenVZ 上运行)
今天早上我的 VPS 关闭了,我不知道为什么。我联系了我的 VPS 主机,他们表示服务器“已关闭”。他们重新启动了它,但我对它究竟是如何/为什么被关闭感到困惑。主持人没有自愿提供有关其关闭原因的信息/意见。
我检查了 /var/log/messages 并注意到以下内容:
Nov 23 11:12:13 echo shutdown[5748]: shutting down for system halt
Nov 23 11:12:13 echo init: Switching to runlevel: 0
Nov 23 11:12:13 echo saslauthd[15407]: server_exit : master exited: 15407
Nov 23 11:12:20 echo xinetd[12074]: Exiting... Nov 23 11:12:20 echo exiting on signal 15
Run Code Online (Sandbox Code Playgroud)
我检查了 /var/log/secure 并注意到以下内容:
Nov 23 11:12:13 echo userhelper[5748]: running '/sbin/halt' with root privileges on behalf of 'root'
Nov 23 11:12:19 echo sshd[11982]: Received signal …Run Code Online (Sandbox Code Playgroud) 假设我在/etc/syslog.conf文件中有以下内容:
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
Run Code Online (Sandbox Code Playgroud)
我想将其更改kern.* /var/log/kern.log为获取内核日志的人类可读时间戳。
木偶可以做到:
class syslog::config {
file { "/etc/syslog.conf":
ensure => present,
source => "puppet:///modules/syslog/syslog.conf",
require => Class["syslog::install"],
notify => Class["syslog::service"],
}
}
Run Code Online (Sandbox Code Playgroud)
或者我也可以使用sed -i.
使用Augeas,我可以将此行附加到文件末尾:
class syslog::config {
augeas { "syslogkern":
context => "/files/etc/syslog.conf",
changes => [
"set entry[last()+1]/selector/facility kern",
"set entry[last()]/selector/level *",
"set entry[last()]/action/file '/var/log/kern.log'",
],
}
}
Run Code Online (Sandbox Code Playgroud)
或修改目的地:
class syslog::config …Run Code Online (Sandbox Code Playgroud) 我已经通过 xinetd 使用 HAProxy设置了负载平衡 MySQL 从站。2 个负载均衡器共享一个由 Pacemaker 管理的虚拟 IP:
crm configure show:
node SVR120-27148.localdomain
node SVR255-53192.localdomain
primitive failover-ip ocf:heartbeat:IPaddr2 \
params ip="192.168.5.9" cidr_netmask="32" \
op monitor interval="5s" \
meta is-managed="true"
primitive haproxy ocf:heartbeat:haproxy \
params conffile="/etc/haproxy/haproxy.cfg" \
op monitor interval="30s" \
meta is-managed="true"
colocation haproxy-with-failover-ip inf: haproxy failover-ip
order haproxy-after-failover-ip inf: failover-ip haproxy
property $id="cib-bootstrap-options" \
dc-version="1.0.12-unknown" \
cluster-infrastructure="openais" \
no-quorum-policy="ignore" \
expected-quorum-votes="2" \
stonith-enabled="false" \
last-lrm-refresh="1342783084"
Run Code Online (Sandbox Code Playgroud)
/etc/haproxy/haproxy.cfg:
global
log 127.0.0.1 local1 debug …Run Code Online (Sandbox Code Playgroud) 由于这个问题,我将在 MySQL 服务器后端嗅探一些数据包,看看会发生什么:
# tcpdump -vv -s0 -c 100 -i bond0 tcp port 3306 and host 192.168.3.87 -w /home/quanta/3.87_aborted.pcap
如您所见,我将 snaplen 设置为 0,但仍然收到消息“捕获期间数据包大小受限”:
MySQL Protocol
Packet Length: 579
Packet Number: 96
text: 336
text: 1004352
text: 147619
text: 336
[Packet size limited during capture: MySQL truncated]
Run Code Online (Sandbox Code Playgroud)
我的界面上的卸载设置:
# ethtool -k bond0
Offload parameters for bond0:
Cannot get device rx csum settings: Operation not supported
rx-checksumming: off
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: on
udp fragmentation …Run Code Online (Sandbox Code Playgroud) 我有一个 web 应用程序(Tomcat/Hibernate/DBCP 1.4),它运行对 MySQL 的查询,这对于特定的负载很有效,比如每秒 50 个查询。当我通过 HAProxy 路由相同的中等负载(仍然只使用一个数据库)时,我会失败,可能每 500 次查询就会失败。我的应用报告:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 196,898 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
at sun.reflect.GeneratedConstructorAccessor210.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3567)
...
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3017) …Run Code Online (Sandbox Code Playgroud) 我有 haproxy,需要向没有直接连接的服务器提供 smtp。
这是我的配置的一部分:
listen smtp 10.12.23.10:3025
mode tcp
server smtp 172.30.33.12:25
#tcp-request inspect-delay 2s
acl white_list src 10.146.5.247 10.146.5.201
tcp-request content accept if white_list
tcp-request content reject
Run Code Online (Sandbox Code Playgroud)
任何连接到端口的尝试都会被拒绝。如果我删除行tcp-request content reject- 适用于所有人,但默认情况下 haproxy 接受一切。只允许两个或更多服务器进入的正确方法是什么?
我也试过以下几行:
tcp-request content reject unless whitelist
tcp-request content reject if !whitelist
Run Code Online (Sandbox Code Playgroud)
如果有帮助,我有 haproxy 1.4.18。
假设我有一个这样的 shell 脚本:-
#!/bin/sh
# cherrypy_server.sh
PROCESSES=10
THREADS=1 # threads per process
BASE_PORT=3035 # the first port used
# you need to make the PIDFILE dir and insure it has the right permissions
PIDFILE="/var/run/cherrypy/myproject.pid"
WORKDIR=`dirname "$0"`
cd "$WORKDIR"
cp_start_proc()
{
N=$1
P=$(( $BASE_PORT + $N - 1 ))
./manage.py runcpserver daemonize=1 port=$P pidfile="$PIDFILE-$N" threads=$THREADS request_queue_size=0 verbose=0
}
cp_start()
{
for N in `seq 1 $PROCESSES`; do
cp_start_proc $N
done
}
cp_stop_proc()
{
N=$1
#[ -f "$PIDFILE-$N" ] && kill `cat …Run Code Online (Sandbox Code Playgroud) 我在我的 Debian 系统上安装了 ufw,如下所示:
# aptitude install ufw
# ufw limit 22
# ufw allow 80
# ufw allow 443
# ufw enable
# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
20 LIMIT Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
Run Code Online (Sandbox Code Playgroud)
一个简单的ping google.com失败,任何aptitude install都会失败。我在 serverfault 上搜索了答案。一种解决方案是允许 DNS 使用端口 53 - 没有帮助。或者ufw allow out 1024:65535/udp与端口 53 一起使用 - 没有帮助。
有效的是让我的 DNS …