speed test cli, 测速

“speed test cli, 测速” https://www.speedtest.net/zh-Hans/apps/cli archlinux pacman -Sy speedtest-cli speedtest-cli --server=43752 --bytes https://github.com/sivel/speedtest-cli macos install speedtest-cli brew install speedtest-cli speedtest-cli --list

2021-03-01 · 1 min · 21 words · -

tcp

tcp TCP将数据分解成网络数据包,并在每个数据包中添加少量数据。这些附加数据包括一个序列号,用于检测丢失或到达顺序不正确的数据包,以及一个校验和,可以检测数据包数据内的错误。当其中任何一个问题发生时,TCP使用自动重传请求 (ARQ)告诉发送方重新发送丢失或损坏的数据包。 https://luoguochun.cn/post/2016-09-23-tcp-fuck/ TCP 的连接标识是通过 “源IP + 源Port + 目标IP + 目标Port + 协议号“ 组成的唯一五元组,一旦其中一个参数发生变化,则需要重新创建新的 TCP 连接。 tcp协议是一个比较复杂的协议,对tcp协议深入理解的,真的非常少非常少;对tcp协议误理解或理解片面的,真的非常多非常多。当然这也包括自己在内,当然也可能包括这篇小结在内。 P.S.: 《TCP/IP详解卷1:协议》是介绍TCP/IP协议栈最经典的著作(神级已故人物W.Richard Stevens经典书籍之一),然而个人觉得这个"详解"对于tcp的介绍有点简略或者理解起来印象非深,读了一次,一次又一次,还是概念模糊。当然这也与中文译本烂得一塌糊涂有关。同时这本经典书籍也有了它的更新版,不同的是作者已经不是原来的神级人物,相同的是译文继续烂。 tcp协议头 tcp协议头 tcp基本协议头占用20个字节,协议中Header Length(4bits)中标明协议头的长度,含义是多少个32bit数据,该字段占用4位,所有整个tcp头最多可以占用60字节。当tcp建立时,主机会生成一个初始的序列号(ISN, Initial Sequence Number),在tcpdump程序抓取的报文中可以看到该初始Sequence,Sequence的生成方式有一定的算法,一般tcp分析很少关注。如果tcpdump查看报文,可以发现,第一个SYN包收到ACK后,后续的SEQ都变成了ISN的偏移量。如果是用大鲨鱼wireshark查看报文,则可以发现,seq总是从0开始,并提示这个值是相对值,大鲨鱼已经处理好这些细节。如: tcpdump seq wireshark seq tcp报文SYN ACK的计算如下: A -> B SYN J ACK K LEN L B -> A SYN K ACK J+L LEN M A -> B SYN J+L ACK K+M 需要注意到的是,注意,对于DATA LEN为0的,发送的SYN包和FIN包,需要消耗一个序号。为了提高传送的效率,ACK是支持累计的,也就是说没必要对每个SYN进行ACK。如: 发送端连续发送3个报文,那么接收端收到3个报文后,可以直接应答一个ACK。 tcp标志位 CWR(Congestion Window Reduced) & ECN (ECN-Echo, Explicit Congestion Notification) CWR 阻塞窗口已减少,意思是告诉对端我已经按照你的要求,进行阻塞窗口减少了,并启动阻塞算法来控制我的发包速度; ECN 显式阻塞窗口通知,意思通知发送方,我接收的报文出现了阻塞,请控制发包速度。也就是说,CWR 和 ECN 必须配合使用,CWR 是收到 ECN 的应答。此外,在tcp三次握手时,这两个标志表明tcp端是否支持ECN。如果建立连接一方支持,则在发送的SYN包,将 ECN 标志置为1,如果服务端也支持,则在ACK包只设置ECN。缘由: tcp建立连接后,报文经过经过路由或网关等网络设备后,在路由器或网关等网络设备出现阻塞时,路由器或网关等设备设置IP层的某个标志表明出现阻塞,这样接收可以明确知道报文出现了阻塞。然而,需要知道阻塞进行阻塞控制的是报文发送方而非接收方。所以接收方会在ACK报文中设置ECN标志,同时发送方在ACK中设置CWR标志,表明已经收到ECN,并进行了减少阻塞窗口操作和启用阻塞算法。 ...

2021-02-15 · 5 min · 1064 words · -

Hardware

Hardware QNAP TS453B mini Dell Wyse 5070 R86S Dell Inspiron N4050 Intel J4105 软路由 SONY WF-1000XM3 CanoKey K375S ThinkPad X1 Carbon Gen 9 ROCK 5B Mitsubishi Outlander MacBook Air Nuphy Air75 DELL U2723QX Apple Watch Series 8 WH-1000XM5 AM40 高尔夫(进口) 2019款 1.8TSI 旅行版 nexus 7 2013 畅网微控 n100 Ruckus R310, 优科 beelink SER8 Dell U2412Mb keychron Q5HE Nintendo Switch2 beelink SER8 AMD 8845HS AMD Radeon 780M ROCK 5B https://wiki.radxa.com/Rock5 CPU: 4核Cortex-A76和4核Cortex-A55的典型大小核架构,大核主频2.4GHz,小核主频1.8GHz GPU: RK3588集成ARM Mali-G610,至少支持2路4K UI NPU: RK3588集成了瑞芯微第四代具有完全自主知识产权的人工智能运算引擎,在MAC运算单元的利用率及带宽的消耗上提升了30%。6TOPs的NPU算力 mac: 66:45:78:69:ad:5c ThinkPad X1 Carbon Gen 9 i7-1185G7 4 核 8 线程 TDP 28W 12MB 三级缓存 BGA 1449, Willow Cove-U 架构 默认运行频率为 3 GHz 根据工作负载可提升至 4.8 GHz 10 纳米工艺 IOMMU 虚拟化(PCI 直通) Iris Xe Graphics G7 96EU 集成显卡 16G 512G Intel AX201 Wi-Fi CERTIFIED*Wi-Fi 6 (802.11ax) Max Speed2.4 Gbps 屏幕 14.0吋 1920*1200 IPS 400nit 低蓝光 14.0 吋 1920*1200 IPS 400nit benchmark https://www.passmark.com/ ...

2021-01-13 · 5 min · 1064 words · W10N

rest client

rest client, HTTP Client jetbrain: HTTP Client plugin vscode: REST Client 使用变量 变量的好处,在开发过程中我们都知道,在 HTTP 语言中同样可以使用变量来帮助我们组织请求代码 自定义变量 我们可以在 http 文件中直接定义变量,使用 @ 符号开头,以 {{variable name}} 的格式来使用 foo.http @foo GET http://localhost:8000/api/v1/public/echo?msg=1345asdf HTTP/1.1 GET http://localhost:8000/api/v1/public/echo?msg={{foo}} HTTP/1.1 // comments http 请求 with header ### get https://foo.com/bar/?foo=bar&bar=foo Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9,ja;q=0.8,zh-CN;q=0.7,zh;q=0.6 Connection: keep-alive Host: wiloon.com User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 https://github.com/Huachao/vscode-restclient

2020-12-24 · 1 min · 65 words · -

单臂路由

单臂路由 openwrt设置 lan口设置 Network>interface>lan>physical settings: Lan口关闭桥接, Lan口取消桥接接口的勾选 接口选择网卡eth0 wan口设置 Network>interface>wan>physical settings: 接口选择网卡eth0 (跟lan口选择同一个网卡) Proxmox VE +openwrt|| docker + openwrt 单臂路由 Docker上运行Lean大源码编译的OpenWRT (初稿) https://openwrt.club/93.html/embed#?secret=a5nUefewHz https://www.redhat.com/sysadmin/leasing-ips-podman https://www.right.com.cn/forum/thread-941106-1-1.html https://github.com/lisaac/blog/issues/4 https://github.com/lisaac/openwrt-in-docker https://www.5yun.org/openwrt-x86-dan-bi-lu-you-dan-wang-kou-shang-wang-fang-fa.html

2020-04-25 · 1 min · 28 words · -

tcp reset, rst

tcp reset, rst 在谈 RST 攻击前,必须先了解 TCP: 如何通过三次握手建立 TCP 连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP 的 flag 标志位里 RST 在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下 RST 攻击是怎么回事。 TCP是什么? TCP 是在 IP 网络层之上的传输层协议,用于提供 port 到 port 面向连接的可靠的字节流传输。我来用土语解释下上面的几个关键字: port到port: IP层只管数据包从一个IP到另一个IP的传输,IP层之上的TCP层加上端口后,就是面向进程了,每个port都可以对应到用户进程。 可靠: TCP会负责维护实际上子虚乌有的连接概念,包括收包后的确认包、丢包后的重发等来保证可靠性。由于带宽和不同机器处理能力的不同,TCP要能控制流量。 字节流: TCP会把应用进程传来的字节流数据切割成许多个数据包,在网络上发送。IP包是会失去顺序或者产生重复的,TCP协议要能还原到字节流本来面目。 从上面我用PowerPoint画的TCP协议图可以看到,标志位共有六个,其中RST位就在TCP异常时出现,也是我这篇文章重点关注的地方。 通过三次握手建立连接 下面我通过A向B建立TCP连接来说明三次握手怎么完成的。 为了能够说清楚下面的RST攻击,需要结合上图说说: SYN标志位、序号、滑动窗口大小。 建立连接的请求中,标志位SYN都要置为1,在这种请求中会告知MSS段大小,就是本机希望接收TCP包的最大大小。 发送的数据TCP包都有一个序号。它是这么得来的: 最初发送SYN时,有一个初始序号,根据RFC的定义,各个操作系统的实现都是与系统时间相关的。之后,序号的值会不断的增加,比如原来的序号是100,如果这个TCP包的数据有10个字节,那么下次的TCP包序号会变成110。 滑动窗口用于加速传输,比如发了一个seq=100的包,理应收到这个包的确认ack=101后再继续发下一个包,但有了滑动窗口,只要新包的seq与没有得到确认的最小seq之差小于滑动窗口大小,就可以继续发。 滑动窗口 滑动窗口毫无疑问是用来加速数据传输的。TCP要保证"可靠",就需要对一个数据包进行ack确认表示接收端收到。有了滑动窗口,接收端就可以等收到许多包后只发一个ack包,确认之前已经收到过的多个数据包。有了滑动窗口,发送端在发送完一个数据包后不用等待它的ack,在滑动窗口大小内可以继续发送其他数据包。举个例子来看吧。 大家看上图,标志位为.表示所有的flag都为0。标志位P表示flag为PSH的TCP包,用于快速传输数据。 前三个包是三次握手,客户端表示自己的滑动窗口大小是65535 (我的XP机器) ,服务器端表示滑动窗口是5840 (屏幕宽了,没截出来) 。从第四个包开始,客户端向服务器发送PSH包,数据长度是520字节,服务器发了ack确认包。注意此时win窗口大小发生了改变哈。以此类推。 倒数第二、三包,服务器在滑动窗口内连续向客户端发包,客户端发送的ack 124同时确认了之前的两个包。这就是滑动窗口的功能了。 如果谈到TCP攻击就需要注意,TCP的各种实现中,在滑动窗口之外的seq会被扔掉!下面会讲这个问题。 四次握手的正常TCP连接关闭 先画张简单的正常关闭连接状态变迁图。 FIN标志位也看到了,它用来表示正常关闭连接。图的左边是主动关闭连接方,右边是被动关闭连接方,用netstat命令可以看到标出的连接状态。 FIN是正常关闭,它会根据缓冲区的顺序来发的,就是说缓冲区FIN之前的包都发出去后再发FIN包,这与RST不同。 RST 标志位 RST 表示复位,用来异常的关闭连接,在 TCP 的设计中它是不可或缺的。就像上面说的一样,发送 RST 包关闭连接时,不必等缓冲区的包都发出去 (不像上面的 FIN 包) ,直接丢弃缓存区的包发送 RST 包。而接收端收到 RST 包后,也不必发送 ACK 包来确认。 ...

2020-04-16 · 5 min · 877 words · -

监控一个 APP 的 HTTPS 流量

监控一个 APP 的 HTTPS 流量 在家里的电视上安装了 Plex 但是因为众所周知的原因, 登录 Plex 账号的过程或者登录之后的网络请求遇到了些问题, 路由器上配置的透明代理配置文件有可能并没有考虑 Plex 常用的地址, 所以需要用一些工具来分析 Plex 发出了哪些网络请求. https://www.anquanke.com/post/id/86238 https://calebfenton.github.io/2017/05/27/monitoring-https-of-a-single-app-on-osx/ 拦截 HTTPS 流量 生成一个根证书 安装这个根证书 用 proxychains 去代理指定的 app 使用 mitmproxy 去拦截流量 安装并配置 proxychains # macOS brew install proxychains-ng 创建一个配置文件 # macos /Users/wiloon/.proxychains/proxychains.conf 然后加入以下内容 strict_chain quiet_mode proxy_dns remote_dns_subnet 224 tcp_read_time_out 15000 tcp_connect_time_out 8000 [ProxyList] http 127.0.0.1 8080 strict_chain: 按照列表中出现的代理服务器的先后顺序组成一条链,要求所有的代理服务器都是有效的 quiet_mode: Quiet mode (no output from library) proxy_dns: Proxy DNS requests - no leak for DNS data remote_dns_subnet: 设置内部 dns 解析地址返回 IP 的网段 ProxyList: 代理服务器列表 ...

2020-04-03 · 2 min · 349 words · -

firewall 防火墙

firewall 防火墙 device 物理设备 context 物理设备上的虚拟防火墙, 类似于虚拟机的概念 每个 context 可以被看作是一个独立的防火墙实例。每个 context 拥有自己的配置文件、策略和规则集,使得单个物理设备能够同时作为多个独立的防火墙进行操作。 VRF VRF(Virtual Routing and Forwarding) VRF 和 Context 是独立的概念 VRF 是一种在同一物理设备上创建多个虚拟路由表的方法,使得不同的网络流量可以在相同的物理接口上保持逻辑隔离。VRF 主要用于以下场景: 多租户环境:在服务提供商或大型企业网络中,VRF 允许不同的客户或部门共享相同的物理网络设备而保持独立的路由表。 安全隔离:VRF 可以将不同的业务流量在逻辑上隔离开,确保不同业务之间的安全性和隐私性。 灵活性和可扩展性:通过使用 VRF,可以在不增加额外硬件的情况下,灵活地管理和扩展网络。

2020-03-01 · 1 min · 30 words · -

huawei vpn, sslvpn, secoclient in archlinux, 华为SSLVPN客户端

huawei vpn, sslvpn, secoclient in archlinux, 华为SSLVPN客户端 下载安装包 http://www.corem.com.cn/index.php/service/tools/secoclient 官方只提供了ubuntu版本,用以下方式可以在 archlinux 上使用。 sudo -i # seco client 依赖 ubuntu 的 arch 命令, 模拟 arch 命令返回 x86_64 echo "echo x86_64" > /usr/bin/arch chmod u+x /usr/bin/arch # install seco client ./secoclient-linux-64-6.0.2.run # 启动后台服务 cd /usr/local/SecoClient/promote ./SecoClientPromoteService -d # 启动secoclient UI cd /usr/local/SecoClient/ ./SecoClient 启动脚本 把 server_address 替换成服务端IP #!/bin/bash sudo ip route del <server_address> count=`ps -ef |grep SecoClientPromoteService |grep -v "grep" |wc -l` echo $count if [ 0 == $count ];then cd /usr/local/SecoClient/promote sudo ./SecoClientPromoteService -d fi count=`ps -ef |grep SecoClient |grep -v "grep" |wc -l` echo $count if [ 1 == $count ];then cd /usr/local/SecoClient/ sudo ./SecoClient fi crostini # in crostini export WAYLAND_DISPLAY=wayland-0 # user id 使用非0数字(非root的已有用户id,如1000,填0 时,secoclient无法启动) export XDG_RUNTIME_DIR=/run/user/<user id> /opt/google/cros-containers/bin/sommelier -X ./SecoClient

2020-02-01 · 1 min · 123 words · -

golang 百万 TCP 连接

golang 百万 TCP 连接 https://colobu.com/2019/02/23/1m-go-tcp-connection/ https://github.com/smallnest/1m-go-tcp-server

2019-11-01 · 1 min · 6 words · -

openvpn docker

openvpn docker export OVPN_DATA="ovpn-data" docker volume create --name $OVPN_DATA docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://home.wiloon.com docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki docker run -v $OVPN_DATA:/etc/openvpn -d -p 192.168.50.220:1194:1194/udp --cap-add=NET_ADMIN --name openvpn --restart=always kylemanna/openvpn docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full client0 nopass docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient client0 > client0.ovpn # Retrieve the client configuration with embedded certificates docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/rpi-openvpn ovpn_getclient client0 > client0.ovpn docker run -v $OVPN_DATA:/etc/openvpn -p 1194:1194/udp --privileged -e DEBUG=1 kylemanna/rpi-openvpn server 192.168.255.0 255.255.255.0 verb 3 key /etc/openvpn/pki/private/xxxx.key ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/xxx.crt dh /etc/openvpn/pki/dh.pem tls-auth /etc/openvpn/pki/ta.key key-direction 0 keepalive 10 60 persist-key persist-tun proto udp # Rely on Docker to do port mapping, internally always 1194 port 1194 dev tun0 status /tmp/openvpn-status.log user nobody group nogroup comp-lzo no ### Route Configurations Below route 192.168.254.0 255.255.255.0 ### Push Configurations Below push "block-outside-dns" push "dhcp-option DNS 192.168.50.1" push "comp-lzo no" push "redirect-gateway def1 bypass-dhcp"

2019-04-29 · 1 min · 162 words · -

TProxy

TProxy net.ipv4.ip_forward 这条命令的作用是开启 Linux 系统的 IPv4 协议栈的数据包转发功能。 sudo sysctl net.ipv4.ip_forward = 1 ip_forward = 0 如果目标 IP 地址是本机拥有的某个 IP 地址,系统就会接收并处理这个数据包(例如,交给某个正在监听端口的应用程序)。 如果目标 IP 地址不是本机的,系统会默认将该数据包丢弃。这是普通主机(Host)的正常行为。 ip_forward = 1 如果目标 IP 地址是本机的,处理方式不变。 如果目标 IP 地址不是本机的,系统不会丢弃它。而是会查询自己的路由表,根据路由规则将这个数据包从合适的网络接口转发出去,发送给下一个路由器或者目标主机。这时,这台机器就扮演了路由器(Router)的角色。 TPROXY 的作用 TPROXY(Transparent Proxy)用来做 透明代理,可以拦截特定的流量,并强制把它交给本地某个 socket(通常是代理进程),而 不改变包的目标地址/端口(和 REDIRECT 不一样,REDIRECT 会改成本机 IP)。 TPROXY 依赖内核的 nf_tproxy_core 模块,它会在路由决策阶段之前决定:这个包是否交给本地 socket TPROXY 能拦截哪些流量 来自外部的流量 在 mangle/PREROUTING 链,TPROXY 可以截获所有进入本机的包 —— 不论目标 IP 是本机,还是本来应该转发出去的其它主机,都可以“强行”转给本地代理进程。 这就是它相比 REDIRECT 的强大之处: REDIRECT 只能改成本机 IP,所以只适合本机为目标的流量; TPROXY 不改变目标 IP,能“假装”这个包还是发往原地址,同时又让本地代理进程接收。 本地产生的流量 在 mangle/OUTPUT 链,TPROXY 可以截获本机应用发出的连接,再转交给代理进程。 哪些流量不能被 TPROXY 拦截? 内核绕过 Netfilter 的流量:例如某些特殊协议或 raw socket 直接发出的包。 ...

2019-04-10 · 3 min · 458 words · -

win11 ssh agent

win11 ssh agent https://www.cnblogs.com/sparkdev/p/10166061.html https://davidaugustat.com/windows/windows-11-setup-ssh making sure that the OpenSSH client is installed Settings -> Apps -> Optional Features Scroll to “OpenSSH Client” and click on the item If it shows an “Uninstall” button, then OpenSSH is already installed, and you can skip to the next section. open Windows service, win + R “services.msc” Enabling the SSH Authentication Agent scroll to “OpenSSH Authentication Agent” and set to Automatic Delayed Start Generating the SSH key add private key into ssh-agent ...

2019-04-05 · 1 min · 100 words · -

iptables `nftables` 混合使用 -_-

iptables nftables 混合使用 -_- iptables 和 nftables 可以混合使用,但是规则要小心配置。 archlinux nftables 的默认规则是禁止转发的 (forward) 看 iptables 的 trace 日志 报文会先经过 iptables 的 forward 链,再流到 nftables 的 forward 链。 nftables 默认在 forward 链抛掉所有数据。 如果启用了 nftables, 一定修改一下 nftables 的默认配置文件。否则报文在 iptables 的 forward 链 accept 之 后会被 nftables 规则抛掉。 iptables trace iptables 调试, raw 表, LOG nftables trace nftables trace

2019-03-30 · 1 min · 55 words · -

archlinux ip forward, ip_forward

archlinux ip forward, ip_forward 开启数据包转发 vim /etc/sysctl.d/30-ipforward.conf net.ipv4.ip_forward=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 sysctl -a |grep net.ipv4.ip_forward 配置 nftables 的转发规则 nftables 默认在 forward 链抛掉所有数据。 如果启用了 nftables, 一定修改一下 nftables 的默认配置文件。否则报文在 iptables 的 forward 链 accept 之 后会被 nftables 规则抛掉。 https://wiki.archlinux.org/index.php/Internet_sharing ip_forward 与路由转发 https://blog.51cto.com/u156838989/1880744

2019-02-24 · 1 min · 39 words · -

网络唤醒, Wake On LAN, WAL

网络唤醒, Wake On LAN, WAL 华硕 BIOS 设置 Advanced> APM Configuration> Power on by PCI-E/PCI # archlinux, wol pacman -S wol wol -i 192.168.50.255 -p 9 1c:b7:2c:af:9a:6a # -i 192.168.50.255, 广播地址 # -p 9, 端口 9,大多数以太网卡都支持 9, 也可以尝试 7 或 0 # 1c:b7:2c:af:9a:6a, 被唤醒的主机的 MAC 地址 ubuntu sudo apt-get install wakeonlan wakeonlan 1c:b7:2c:af:9a:6a android client TX ToolBox Name: 填写一个别名就可以,例如: foo Mac Address: 填写电脑网卡MAC地址 (注意是主板上有线网卡) ,这个要填写正确,如何获得? 进入命令行运行: ipconfig /all,然后查看对应的物理地址即可,共6组2字节十六进制字符; Broadcast IP/Hostname/FQDN Broadcast IP/Hostname 是电脑所在的局域网的广播地址: 如果你的电脑分配到 192.168.1.100 则填写 192.168.1.255,将唤醒包广播到1网段下面所有电脑, Hostname: 则是你电脑的主机名. FQDN:是广域网唤醒, 例如你的手机在公网 (4g上网), 不在局域网,则需要填写路由器的DDNS域名, 如: http://homepc.router.net Port 端口默认是9, 这里默认就可以 ...

2019-02-02 · 1 min · 103 words · -

aliyun ddns

aliyun ddns https://github.com/honwen/aliyun-ddns-cli aliyun-ddns-cli --access-key-id=ak0 --access-key-secret=sk0 auto-update --domain=domain0.wiloon.com --redo=600 docker run -d \ -e "AKID=[ALIYUN's AccessKey-ID]" \ -e "AKSCT=[ALIYUN's AccessKey-Secret]" \ -e "DOMAIN=ddns.aliyun.win" \ -e "REDO=600" \ -e "TTL=600" \ chenhw2/aliyun-ddns-cli jeessy2/ddns-go https://github.com/jeessy2/ddns-go

2019-01-26 · 1 min · 33 words · -

ss command

ss command ss, Socket Statistics ss -ntlp ss -ntp ss -nxlp ss -nxp sudo ss -tuln6 | grep ':53' ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。 常用选项 -h, –help 帮助 -V, –version 显示版本号 -t, –tcp 显示 TCP 协议的 sockets -u, –udp 显示 UDP 协议的 sockets -x, –unix 显示 unix domain sockets,与 -f 选项相同 -n, –numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh” -l, –listening 只显示处于监听状态的端口 -p, –processes 显示监听端口的进程(Ubuntu 上需要 sudo) -a, –all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接 -r, –resolve 把 IP 解释为域名,把端口号解释为协议名称 ...

2019-01-08 · 6 min · 1243 words · -

iptables nat

iptables nat iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE nat 表需要的三个链: PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT; POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。 OUTPUT:定义对本地产生的数据包的目的NAT规则。 需要用到的几个动作选项: (真实环境中用大写) redirect 将数据包重定向到另一台主机的某个端口,通常用实现透明代理和对外开放内网某些服务。 snat 源地址转换,改变数据包的源地址 dnat 目的地址转换,改变数据包的目的地址 masquerade IP伪装,只适用于ADSL等动态拨号上网的IP伪装,如果主机IP是静态分配的,就用snat ip 包大致的流向 DNAT, podman nat表prerouting链 - nat替换目标地址 路由判断 filter表forward链 nat表postrouting链 accept 路由判断, 流入虚拟网卡 cni-podman0 https://www.cnblogs.com/highstar/p/3256813.html

2018-11-22 · 1 min · 52 words · -

openwrt install

openwrt install build R7800, Build custom Netgear R7800 firmware for a larger flash size/root space http://blog.wiloon.com/?p=12113&embed=true#?secret=Z4x4I19l6b burn netgear 刷机, factory.img, sysupgrade.bin http://blog.wiloon.com/?p=12826&embed=true#?secret=G3qiDnmUJx 改网段 openwrt lan 改网段 http://blog.wiloon.com/?p=12761&embed=true#?secret=XiBcmLWKRM openvpn https://openwrt.org/docs/guide-user/services/vpn/openvpn/basic enable https for wget opkg install librt openssl-util opkg install wget ca-certificates

2018-10-29 · 1 min · 41 words · -