修改虚拟交换机 MTU 提高 esxi 虚拟机网络速度
最近发现我的局域网内网下的网速很慢,只有500M左右,达不到 1000M 的速度。我是通过 ipert3 进行测速的。
家里的网络是通过 esxi 下安装的 openwrt,ubuntu 等虚拟机控制的,通过 esxi 管理页面可以看到接口都运行在 1000M 全双工模式下,说明网线链接是没有问题的:
经过查询发现可以通过修改虚拟交换机的 mtu 值到 9000 来提高网络吞吐量从而加快网速。
最近发现我的局域网内网下的网速很慢,只有500M左右,达不到 1000M 的速度。我是通过 ipert3 进行测速的。
家里的网络是通过 esxi 下安装的 openwrt,ubuntu 等虚拟机控制的,通过 esxi 管理页面可以看到接口都运行在 1000M 全双工模式下,说明网线链接是没有问题的:
经过查询发现可以通过修改虚拟交换机的 mtu 值到 9000 来提高网络吞吐量从而加快网速。
我家里的主机使用 esxi 管理多个 vm 虚拟机,之前的文章介绍过 esxi 的安装及使用:ESXi 的安装与使用,需要安装的可以参考。
通过浏览器访问 vcenter 管理界面默认会强制 https 模式,但是访问端并没有安装 vcenter 管理网页的证书,所以会提示不安全的链接,下面介绍如何在 esxi 上安装自定义域名的 ssl 证书,并在客户机上安装。
最近在使用中发现一个软件 log 中出现大量的报错:
/core/transport/internet/tcp: failed to accepted raw connections > accept tcp [::]:18919: accept4: too many open files
查询后知道这是进程占用的句柄数超出了系统最大值导致的。由于我的系统是 openwrt 所以下面介绍如何修改某个进程的最大句柄数限制。
之前介绍过通过 dnsmasq 配合 iptables 实现对 ip 地址的流量过滤,dnsmasq 获取到流量后标记 ipset 然后通过 iptables 识别 ipset 然后将流量送往指定地址。
通过 dnsmasq ipset 和 iptables 对域名流量的控制
iptables 使用教程
这里面存在一个问题就是流量回环问题,如果处理不好回导致 iptables 规则无限循环,尤其是在配置透明代理时候。
iptables -t mangle -A PREROUTING -p tcp -m set --match-set gfwlist dst -j TPROXY --on-port 1081 --tproxy-mark 1
iptables -t mangle -A PREROUTING -p udp -m set --match-set gfwlist dst -j TPROXY --on-port 1081 --tproxy-mark 1
iptables -t mangle -A OUTPUT -p tcp -m set --match-set gfwlist dst -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -p udp -m set --match-set gfwlist dst -j MARK --set-mark 1
以上规则会将 指定 list 的流量发送到指定端口并打上 mark 标记,但是从目标地址返回数据后,数据流会再次匹配到以上规则导致再次将流量送往指定端口,导致无限循环。
处理方法就是在目标地址获取到流量后,给流量打上 mark 标记,然后在 iptables 的最前面加上一条规则识别从目标地址返回的流量,直接 return 流量即可。
例如目标地址处理后的流量标记为 mark 2,iptables 规则最前面增加一条规则:
iptables -t mangle -I OUTPUT -j RETURN -m mark --mark 0x02
-I
参数就是将规则放在在路由链的最前面。
如果是通过脚本的方式配置 iptables,将开始的脚本内容修改如下即可:
iptables -t mangle -A OUTPUT -j RETURN -m mark --mark 0x02
iptables -t mangle -A PREROUTING -p tcp -m set --match-set gfwlist dst -j TPROXY --on-port 1081 --tproxy-mark 1
iptables -t mangle -A PREROUTING -p udp -m set --match-set gfwlist dst -j TPROXY --on-port 1081 --tproxy-mark 1
iptables -t mangle -A OUTPUT -p tcp -m set --match-set gfwlist dst -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -p udp -m set --match-set gfwlist dst -j MARK --set-mark 1
这样就可以避免流量回环问题。
phpMyAdmin 是一个 php 的免费工具,用来在 web 端管理 MySQL 数据库。它支持大部分的 MySQL 功能,比如:创建数据库,修改数据,管理用户权限,导入导出数据等。
官方网站:https://www.phpmyadmin.net/
GitHub 主页:https://github.com/phpmyadmin/phpmyadmin
下面介绍在 Ubuntu 20.04 的安装及使用过程。