我有一台安装了 6 个 NIC 的服务器,并且正在运行 Ubuntu 12.04LTS。我想使用 kvm 设置 4 个来宾 VM。现在我想为主机分配 2 个 NIC(1 个公共 IP 和 1 个私有 IP),每个 1 个 NIC 分配给 4 个来宾 VM(所有私有 IP)。我该怎么做呢?
/etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
我的配置文件有问题,如下所示:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.109
netmask 255.255.255.0
gateway 192.168.1.5
auto eth1
iface eth1 inet static
address 192.168.1.117
netmask 255.255.255.0
auto eth2
iface eth2 inet manual
auto br0
iface br0 inet …Run Code Online (Sandbox Code Playgroud) 我想要做的就是安装 postfix,并转发电子邮件。我不需要任何东西留在我的服务器上。这让我见鬼去吧。我尽了最大努力,但 postfix 拒绝所有中继。
我想要的是这个。说我的服务器在example.com.我想要这个:
邮件转发:
user1@example.com -> user1@gmail.com
user2@example.com -> user2@yahoo.com
user3@example.com -> user3@hotmail.com
Run Code Online (Sandbox Code Playgroud)
我所需要的只是一个转发箱,它可以重定向收到的电子邮件。因为我的配置显然有问题,我真的可以只使用一个示例 main.cf 来满足我的目的,我会继续的。
编辑:日志
奇怪的是日志没有给我任何错误。
main.cf:
mreiley@Omega-14:/var/log$ cat /etc/postfix/main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is …Run Code Online (Sandbox Code Playgroud) 我有一个CentOS 6.6安装了以下软件包的服务器:
crontabs-1.10-33.el6.noarch
cronie-1.4.4-12.el6.x86_64
cronie-anacron-1.4.4-12.el6.x86_64
kernel-2.6.32-504.3.3.el6.x86_64
Run Code Online (Sandbox Code Playgroud)
有时,计划每天运行的备份作业之一根本不运行。该脚本甚至没有根据/var/log/cron.log. 有趣的是,其他计划完全同时运行的作业运行没有任何问题。
我无法重现这个问题,也没有发现任何模式。如果我什么都不做,那么第二天该作业会按预期正常运行。
crond 只是忽略应该在特定时间运行的多个作业之一。这只是偶尔发生。
我在其他一些地方读到人们谈论在crontab文件末尾添加一个空行。偶尔无法运行的作业确实在我crontab文件的最后一行。我找不到任何确认这是一个真实的或已知的错误。
# tail -2 /var/spool/cron/postgres
* * * * * OTHERJOB
0 21 * * * /pg_backup.sh
Run Code Online (Sandbox Code Playgroud)
这就是我的全部 /var/log/cron.log
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19394]: (root) CMD (OTHERJOB)
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19418]: (postgres) CMD (/pg_backup.sh)
Mar 31 21:01:02 SERVERNAME [cron.info] CROND[20062]: (root) CMD (OTHERJOB)
Apr 1 21:00:02 SERVERNAME [cron.info] CROND[31349]: (root) CMD (OTHERJOB)
Apr 1 21:01:01 SERVERNAME [cron.info] CROND[32080]: …Run Code Online (Sandbox Code Playgroud) 不幸的是,我们有一个客户端硬编码了一个设备以指向特定的 IP 和端口。我们希望将流量从他们的 IP 重定向到我们的负载均衡器,负载均衡器会将 HTTP POST 发送到能够处理该请求的服务器池。我希望来自所有其他 IP 的现有流量不受影响。
我相信 iptables 是实现这一目标的最佳方式,我认为这个命令应该可以工作:
/sbin/iptables -t nat -A PREROUTING -s $CUSTIP -j DNAT -p tcp --dport 8080 -d $CURR_SERVER_IP --to-destination $NEW_SERVER_IP:8080
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有按预期工作。我不确定是否需要在POSTROUTING链中添加另一条规则?
下面我用真实的 IP 替换了上面的变量,并尝试在我的测试环境中逐步复制布局。
$CURR_SERVER_IP = 192.168.2.11
$NEW_SERVER_IP = 192.168.2.12
$CUST_IP = 192.168.0.50
Run Code Online (Sandbox Code Playgroud)
端口转发在同一个 IP 上
/sbin/iptables -t nat -A PREROUTING -p tcp -d 192.168.2.11 --dport 16000 -j DNAT --to-destination 192.168.2.11:8080
Run Code Online (Sandbox Code Playgroud)
完全按预期工作。
IP 和端口转发到不同的机器
/sbin/iptables -t nat -A PREROUTING -p tcp -d 192.168.2.11 --dport 16000 -j DNAT --to-destination …Run Code Online (Sandbox Code Playgroud)我的 phpinfo.php 没有显示额外的 PHP 配置文件的额外文件夹。我在 CentOS v6.3 32 位上运行 Apache v2.4.4(使用 PHP DSO)和 PHP v5.4.14。Apache 和 PHP 安装是从源代码编译的。
我没有使用--with-config-file-scan-dir=PATHPHP的配置选项。(并且不会使用,因为我将需要多个文件夹)。
环境变量PHPRC和 Apache 指令PHPIniDir与主要的 PHP 文件相关,这让我可以使用环境变量PHP_INI_SCAN_DIR。以下是我所做的步骤:
PHP_INI_SCAN_DIR作为操作系统环境变量需要在 Apache 启动之前设置。所以我将以下条目添加到我的/etc/profile.d/php.sh文件中。
PHP_INI_SCAN_DIR="/usr/local/lib/php/custom" 导出 PHP_INI_SCAN_DIR
然后重新启动了系统。
现在命令env | grep PHP,php -i | grep INI并php --ini给我以下输出。
=> # env | grep PHP
PHP_INI_SCAN_DIR=/usr/local/lib/php/custom
=> # php -i | grep INI
PHP_INI_SCAN_DIR …
我最近设置了一个新的备份服务器并配置了 sendmail smart_relay_host
除了来自命令行的每封电子邮件都不会去任何地方。来自mail.log:
Oct 3 14:32:52 *****back01 sm-mta[16570]: p93DWqtC016568: to=<***.***@***.com>, ctladdr=<root@*****back01.****.****.local> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=120762, relay=10.2.30.60, dsn=5.1.2, stat=Host unknown (Name server: 10.2.30.60: host not found)
Oct 3 14:32:52 *****back01 sm-mta[16570]: p93DWqtC016568: p93DWqtC016570: DSN: Host unknown (Name server: 10.2.30.60: host not found)
Run Code Online (Sandbox Code Playgroud)
DNS 在此框上正常工作。我可以进行正向和反向查找。
我还可以远程登录到邮件中继并以这种方式发送消息。
我难住了。有什么建议?
我已经安装了 Proxmox 3.2,我正在尝试将虚拟机配置为处理所有流量并将它们转发到具有私有 ip 的节点的通信服务器。
我使用两个配置完全相同的 CentOS 虚拟机为 NAT 网络配置了服务器。
Proxmox wiki 有一个非常有限和基本的 nat 网络文档。
我在这里和 proxmox 论坛上发现了类似的问题(这个,这个)。我试图了解linux nat 网络的基础知识,所以我从头到尾完成了这个非常容易理解的教程。我阅读了这篇文章以了解iptables nat 规则
安装和配置后,当我从主机 ping 到 VM 或从 VM 到主机时,输出是:
root@testPrx:~# ping 10.0.4.2
PING 10.0.4.2 (10.0.4.2) 56(84) bytes of data.
From 10.0.4.1 icmp_seq=2 Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)
当我尝试从具有 Internet 连接和 (192.168.0.3) 的同一网络中的服务器通过 telnet 连接到通信服务器的公共 IP 时
bash-4.1# telnet 192.168.0.2 2701
Trying 192.168.0.2...
telnet: connect to address 192.168.0.2: No route to host
Run Code Online (Sandbox Code Playgroud)
当我尝试 …
我正在使用 ssh 尝试连接到远程网络后面的服务器。该服务器位于同一网络上的 socks5 代理后面。代理服务器的端口是1080,ssh端口是22,但是失败了。调试说端口 22 上的连接被拒绝。
我认为有必要安装开瓶器,所以它用自制软件安装并使用此链接作为参考
debug1: Reading configuration data /Users/jason/.ssh/config
debug1: Applying options for XXX.XX.XX
debug1: Reading configuration data /etc/ssh_config
debug1: Executing proxy command: exec /usr/local/bin/corkscrew proxy.server 1080 XX.XXX.XX.XX 22
debug1: identity file /Users/jason/.ssh/identity type -1
debug1: permanently_drop_suid: 501
debug1: identity file /Users/jason/.ssh/id_rsa type 1
debug1: identity file /Users/jason/.ssh/id_dsa type 2
Run Code Online (Sandbox Code Playgroud) 我在 Amazon EC2 服务器上运行 Ubuntu。我有一个公共 IP 地址 ( 52.38.20.76)。
我无法将公共 IP 地址绑定到 UDP 端口:
udp listen 52.38.20.76:3478: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)
因此,我试图更改 ifconfig 以显示公共 IP 地址而不是私有 IP 地址。但是,我尝试过的网络更改没有奏效。
编辑 /etc/network/interfaces.d/eth0.cfg
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 52.38.20.76
netmask 255.255.255.0
gateway 172.31.32.1
dns-nameservers 8.8.8.8 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
网关,我基于一个route -n命令的结果:
目标网关 Genmask Flags Metric Ref Use Iface 0.0.0.0 172.31.32.1 0.0.0.0 UG 0 0 0 eth0 172.31.32.0 0.0.0.0 255.255.240.0 U 0 0 …
我在 postfix 配置文件中有这个 smtp 限制:
smtpd_sender_restrictions = permit_sasl_authenticated, check_policy_service inet:127.0.0.1:10031,permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unauth_pipelining, reject_authenticated_sender_login_mismatch, reject_unknown_sender_domain
Run Code Online (Sandbox Code Playgroud)
据我所知,如果permit_sasl_authenticated说特定用户已通过身份验证,则不会检查其余限制?
如果我想确保,permit_sasl_authenticated并且check_policy_service inet:127.0.0.1:10031,如果他们都说是,那么电子邮件应该被传递,否则不会?
实际上,我正在尝试设置线索使者,但是Sender address rejected即使在从 SASL 正确验证发件人之后,也遇到了它所说的问题。
这是我的postconf -n输出:
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
disable_vrfy_command = yes
inet_interfaces = 91.91.98.67, localhost
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = mauth.fdomain.co.uk, localhost
myhostname = mauth.fdomain.co.uk
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no …Run Code Online (Sandbox Code Playgroud) linux ×3
email ×2
iptables ×2
postfix ×2
unix ×2
amazon-ec2 ×1
apache-2.2 ×1
centos ×1
centos6 ×1
cron ×1
debian ×1
dnat ×1
forwarding ×1
ifconfig ×1
masquerade ×1
nat ×1
networking ×1
nic ×1
oracle-linux ×1
php ×1
proxmox ×1
sendmail ×1
socks ×1
ssh ×1
static-ip ×1
ubuntu ×1