Linux

记windows通过linux共享上网

背景 女友家用笔记本的无线网卡突然罢工了,尝试有线还是能用的。但是网线连接到路由器不够长。我本人台式机装的是archlinux,一块有线网卡,一块USB无线网卡,平时使用USB无线网卡上网。两电脑距离较近,使用网线完全合适,于是想到能不能让windows通过linux上网。作为一个爱折腾的码农,关键时候怎能不好好表现一下,说干就干。 环境 windows7笔记本一台,双网卡, 一块有线网卡(没用),一块无线网卡(已坏) archlinux台式机一台,双网卡,一块有线网卡(没用),一块USB无线网卡(正常上网) 普通网线(双绞线)一根 目的:通过网线连接两块有线网卡,使windows通过linux上网 配置步骤 用网线连接两块有线网卡 开启ip转发sysctl net.ipv4.ip_forward=1 开启nat伪装iptables -t nat -A POSTROUTING -j MASQUERADE 配置linux有线网卡静态IP: 192.168.1.2/24 配置windows有线网卡静态IP: 192.168.1.3,MASK: 255.255.255.0, GATEWAY: 192.168.1.2 配置windows的DNS为linux机器上的DNS或者google公共DNS: 8.8.8.8 观察网络 在linux上观察windows ping百度的网络数据,其中192.168.0.114是linux上USB无线网卡的IP地址: [root@arch ~]# tcpdump -i any -nn icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 23:00:03.298518 IP 192.168.1.3 > 115.

常用调试工具

linux下常用调试工具 fuser fuser使用文件或者套节字来识别进程 示例 fuser <filename> 常用选项 -n # 指定namespace(file, tcp, udp) -m # 指定挂载点 lsof lsof(list open files)列出当前系统打开文件 示例 lsof lsof -p 1234 常用选项 -p <pid> # 指定特定进程 -c <cmd> # 指定命令 -n # 不解析主机名 -P # 不解析端口号 gstack gstack打印的堆栈信息 示例 gstack <pid> strace strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。 示例 strace cat /dev/null strace -p 1234 常用选项 -p <pid> # 指定特定进程 -o <filename> # 输出到文件 -f # 踪子进程 -ff # 跟-o连用,每个进程输出到各自文件 tcpdump tcpdump抓包

lvs

背景 提高业务系统的处理能力及可靠性 集群:方案采用多节点集群 负载均衡:调度器 高可用:HA 方案 pacemaker + lvs + ldirectord 由于项目的主要负载是rdp及ssh协议,所以lb采用lvs。同时使用pacemaker保证lvs的可靠性。 集群由lvs进行负载均衡高度,使用pacemaker来保证lvs的高可用。 为了节约成本,lvs由pacemaker随机选取集群节点中的一个节点来运行。调度策略采用lvs的dr模式,调度算法采用lc。 实施 由于lvs要求real server必须禁止arp响应而virtual server必须支持arp响应,所以pacemaker定义资源运行在Master/Slave模式并与ldirectord绑定关系。 lvs资源 lvs运行在master/slave模式。master节点在指定网卡上配置vip,响应arp,并启用转发;slave节点在网卡lo上配置vip,不响应arp。 响应arp需要通知路由更新arp表,由程序send_arp向路由发送更新消息,该程序由resource-agents的IPaddr中提取,IPaddr位于/usr/lib/ocf/resource.d/heartbeat/IPaddr。 以下agent脚本由pacemaker提供的Stateful模板改编而来,模版默认位于/usr/lib/ocf/resource.d/pacemaker/Stateful。 文件名:lvs #!/bin/sh # # # Example of a stateful OCF Resource Agent. # # Copyright (c) 2006 Andrew Beekhof # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation.