linux网络相关命令使用
A,iptables使用示例
- 1,将请求80端口的包发送给本机8180端口(这样,别的机器访问本机的80端口时会被转发到8180端口去)
- iptables -t nat -A PREROUTING -p tcp -d 10.6.2.110 --dport 80 -j DNAT --to-destination 10.6.2.110:8180
- iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8180
- 用 127.0.0.1 或者本机 IP 来访问本机的端口。本地连接的数据包不会通过网卡,而是由内核处理后直接发给本地进程。这种数据包在 iptables 中只经过 OUTPUT 链,而不会经过 PREROUTING 链。所以需要在 OUTPUT 链中进行 DNAT。除了对 127.0.0.1 之外,对本机 IP (即 10.6.2.110) 的访问也属于本地连接。
- 这样,本机访问本机的80端口时会被转发到8180端口去
- iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8180
- iptables -t nat -A OUTPUT -p tcp -d 10.6.2.110 --dport 80 -j DNAT --to 127.0.0.1:8180
- 2,端口转发到别的虚拟机方式如下
- echo "1">/proc/sys/net/ipv4/ip_forward
- iptables -t nat -A PREROUTING -p tcp -d 10.6.2.110 --dport 80 -j DNAT --to-destination 10.6.2.11:80
- iptables -t nat -A POSTROUTING -p tcp -d 10.6.2.11 --dport 80 -j SNAT --to-source 10.6.2.110
- 3,禁止某个ip段访问本机web服务
- iptables -A INPUT -p tcp -s 124.95.172.128/26 --dport 80 -j REJECT
- iptables -A INPUT -p tcp -s 124.95.172.128/26 --dport 80 -j DROP
- 4,其他命令
- iptables -t nat -D PREROUTING 2 删除某条路由
- iptables -t nat -F 清空路由
- iptables -t nat -L 列举,查看网关/本机dns路由
- 附:windows可以用plink实现端口转发等
- 1,将发往本机lo设备8088端口的数据转发到本机eth0设备的3000端口(-L参数,本机开启sshd)
- plink.exe -C -N -L 127.0.0.1:8088:192.168.201.61:3000 -pw passwd ciaos@192.168.201.61
- 2,将发往本机lo设备8088端口的数据转发到远端10.6.2.11的8088端口(-L参数,远端开启sshd)
- plink.exe -C -N -L 127.0.0.1:8088:10.6.2.11:8088 -pw remote_passwd root@10.6.2.11
- 3,将发往本地lo设备8080端口的数据转发到远端10.6.2.11机器的80端口(-R参数,本机开启sshd)
- plink.exe -C -N -R 127.0.0.1:8088:10.6.2.11:80 -pw passwd ciaos@192.168.201.61
- -C 启用压缩
- -N 不开启shell
- 用plink.exe还可以配置Socket 5代理(代理服务器需要开启sshd服务) plink.exe -C -N -D 本机IP:本机端口 -pw huaweiNB root@代理服务器IP
- 4,外部请求转到127.0.0.1端口
- # iptables -t nat -I PREROUTING -p tcp -d [公网IP] --dport 8080 -j DNAT --to-destination 127.0.0.1:80
- # sysctl -w net.ipv4.conf.eth1.route_localnet=1
- 其中,请用ifconfig确定本机的外网地址(在上面的例子中为公网IP)是eth0还是eth1。步骤二中,要用对应的eth。
- 将步骤二修改的变量修改到配置文件/etc/sysctl.conf中,重启可以保留。
B,traceroute使用示例
- traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
- windows工具如下
- tracert -d -h maximum_hops -j host-list -w timeout target_host
- 参数的作用:
- -d 指定不将地址解析为主机名
- -h maximum_hops 指定搜索目标地址时的最大跃点数
- -j host-list 指定沿主机列表的松散源路由
- -w timeout 由每个回复的 timeout 指定的等待毫秒数
- target_host 指定目标主机的名称或 IP 地址。
C,tcpdump使用示例(windows可以使用wireshark或者httpanalyzer)
- tcpdump -s 0 -l -w - dst host 10.6.2.110 and port 80 | strings 查看指向目标主机及端口的数据包
- tcpdump -s 0 -l -w - dst host 10.6.2.110 and port 80 > file 同上,保存结果到file文件
- tcpdump host 10.6.2.110 and \(10.6.2.245 or 10.6.2.11 \) and port 80 截获主机10.6.2.110 和主机10.6.2.11或10.6.2.245的通信
- tcpdump -s 0 -l -w - ip host 10.6.2.110 and ! 10.6.2.245 除了和主机10.6.2.245之外所有主机通信的ip包
- 其他格式:
- tcpdump -i eth0 dst host 10.6.2.245 and src 10.6.2.11 and port 80 -X -s 0 -c 3
- tcpdump -s0 -A client_ip
D,route使用示例
- /etc/sysconfig/network/ifcfg-eth0 网络配置信息
- route -n 查看默认路由及网关 (或ip route show)
- route del default gw 10.6.2.1 删除默认网关
- route add default gw 10.6.2.110 配置默认网关
- 添加路由(访问192.168.193.0网络就会从网关10.6.2.110走)
- route add -net 192.168.193.0 netmask 255.255.255.0 gw 10.6.2.110
- route add –host 192.168.193.110 dev eth0:1(访问主机192.168.193.110会从网卡eth0:1走)
- windows添加删除路由示例
- route delete 10.6.0.0
- route add 10.6.0.0 mask 255.255.0.0 192.168.200.1 /p
E,ifconfig使用示例
- ifconfig eth0 10.6.2.112 netmask 255.255.255.0 修改ip及子网掩码
- 配置eth0别名设备 eth0:1 的IP,并添加路由
- ifconfig eth0:1 192.168.4.2
- 设置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它
- ifconfig eth1 192.168.1.252 hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255 up
- (关闭ifconfig eth0:1 down)
- ifconfig eth0 mtu 1500 改变网络设备MTU(最大传输单元)的值
F,ip使用示例
- ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等
- ip link set dev eth0:1 (down|up) 等价于 ifconfig eth0:1 (down|up)
- ip link set dev eth0 mtu 1500 改变网络设备MTU(最大传输单元)的值
- ip link set dev eth0 address 00:01:4f:00:15:f1 修改网络设备的MAC地址
- ip link set dev eth0 txqueuelen 100 改变设备传输队列的长度
- ip addr add 192.168.4.2/24 brd + dev eth0 label eth0:1 等价于ifconfig eth0:1 192.168.4.2
- ip addr show显示协议地址
- ip认识的设备
- ip link
- ip route 管理路由表条目
- ip rule 添加策略路由
- ip neighbour ARP缓冲条目
- ip address 一个设备的协议地址(ip)
- maddress 多播地址
- mroute 多播路由缓冲区条目
- tunnel IP上的通道
G,其他命令
- arp 查看arp缓存
- arp –s IP MAC 添加arp记录 (可以伪造arp)
- arp –d IP 删除
arping -b 10.6.2.47 查看IP对应mac地址,如果有多个返回,说明mac冲突- ping 计算耗时和丢包率,ping的过程按"Ctrl"+"\"按键
- ciaos:~ # ping 10.6.2.11
- PING 10.6.2.11 (10.6.2.11) 56(84) bytes of data.
- 64 bytes from 10.6.2.11: icmp_seq=1 ttl=64 time=0.226 ms
- 64 bytes from 10.6.2.11: icmp_seq=2 ttl=64 time=0.228 ms
- 64 bytes from 10.6.2.11: icmp_seq=3 ttl=64 time=0.233 ms
- 3/3 packets, 0% loss, min/avg/ewma/max = 0.226/0.229/0.227/0.233 ms
- 64 bytes from 10.6.2.11: icmp_seq=4 ttl=64 time=0.220 ms
- 64 bytes from 10.6.2.11: icmp_seq=5 ttl=64 time=0.200 ms
- 64 bytes from 10.6.2.11: icmp_seq=6 ttl=64 time=0.183 ms
- 64 bytes from 10.6.2.11: icmp_seq=7 ttl=64 time=0.259 ms
- 64 bytes from 10.6.2.11: icmp_seq=8 ttl=64 time=0.270 ms
- 64 bytes from 10.6.2.11: icmp_seq=9 ttl=64 time=0.256 ms
- 9/9 packets, 0% loss, min/avg/ewma/max = 0.183/0.230/0.232/0.270 ms
- 拒绝ping本机
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all- 查看网络故障的一般顺序
1,ping 127.0.0.1查看tcp/ip是否正常工作
2,ping 局域网ip地址查看网络适配器是否工作以及本地IP正确配置
3,ping 默认网关查看是否连接局域网以及网关是否在工作
4,ping 外网ip查看网关是否正确工作,转发数据包
5,ping 外网域名,查看域名解析是否正常- 远程登录局域网电脑
1,下载putty工具包
2,命令行执行 PLINK.EXE -N -P 22 root@10.6.2.11 -L 127.0.0.1:13389:10.6.2.59:3389
3,其中"10.6.2.11"可以为公网IP,本机可达;
"10.6.2.59"可以为内网,和本机没有连接,但需要和10.6.2.11连接
原理:本机通过10.6.2.11虚拟机,将发往本机13389端口的数据包发送给10.6.2.59的3389端口,并将数据返回。
这样,直接打开远程登录工具登录127.0.0.1:13389端口就能访问10.6.2.59了,很酷!
注:
a,如果远程登录linux机器,命令如下(原理一样,对22端口转发)
PLINK.EXE -N -P 22 root@10.6.2.11 -L 127.0.0.1:22:10.6.2.110:22
b,如果公网"10.6.2.11"为windows机器,就更简单了,直接远程桌面,然后再使用远程桌面登录内网windows或者linux- 反向ssh(Windows的ssh.exe版本没有-f参数,去掉此参数即可)
0. 在两侧都安装ssh
1. 在被控端运行ssh -f -N -R 10000:受控端ip:22 username@主控端ip。这里的10000和22是端口号,也就是说,在主控端10000端口和被控端的22端口上建立了一个通道,username为主控端用户名。
2. 在主控端运行ssh username@localhost -p 10000。这里的username是你被控端的username,10000就是刚才的那个端口号。
(ssh.exe -f -N -R 3000:localhost:3000 root@10.6.2.11)
隧道技术可参照http://blog.chinaunix.net/uid-20761674-id-74962.html
稳定的隧道可用autossh,建立好ssh免密码登录后
- autossh -f -R 2222:localhost:22 15.28.18.101 -o TCPKeepAlive=yes vmstat 15
linux网络相关命令使用的更多相关文章
- Linux 网络相关命令 Cheat Sheet
以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -
- Linux 网络相关命令
1.修改ip,dns相关:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.ifconfig 查找ip,mac地址 3.重启网络:sudo ser ...
- Linux网络相关命令firewalld和netfilter、iptables 使用(6/22)
iptables和netfilter的关系: netfilter在内核空间的代码根据table中的rules,完成对packet的分析和处置.但是这些table中的具体的防火墙rules,还是必须由系 ...
- LINUX网络相关命令(转)
网络连通性 Ping:发送一个 ICMP 回声请求消息给主机,一直持续到到你按下 Ctrl+C .Ping 表示一个包通过 ICMP 从你的机器发送出去,然后在IP层得到回应.Ping 可以检测你与另 ...
- linux网络相关命令之脚本和centos启动流程
nice 功用:设置优先权,可以改变程序执行的优先权等级.等级的范围从-19(最高优先级)到20(最低优先级).优先级为操作系统决定cpu分配的参数,优先级越高,所可能获得的 cpu时间越长. 语法: ...
- Linux网络相关命令小结
# ifconfig # ifup/ifdown # route -n # ip link show //显示本机所有接口信息 # traceroute # netstat //查看本机网络连接与后门 ...
- linux网络配置命令(一)——ifconfig
linux网络配置命令(一)——ifconfig ifconfig 查看.配置网卡信息.已过时,推荐使用ip命令 格式: ifconfig [interface] ...
- 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法
Linux网络相关 ifocnfig 查看网卡ip(yum install net-tools) ip add 查看网卡 ip add = ifocnfig ifconfig 不显示down掉的网卡, ...
- Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法 使用介绍
第7周第3次课(5月9日) 课程内容: 10.11 Linux网络相关10.12 firewalld和netfilter10.13 netfilter5表5链介绍10.14 iptables语法 扩展 ...
随机推荐
- Java日期计算之Joda-Time
http://rensanning.iteye.com/blog/1546652 Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time.可以利用它把JDK D ...
- Django Web开发【2】Django入门
配置开发环境 1.安装Python,我使用的是centos 6.0,python版本为2.6.6 2.安装Django,Django版本为1.3.5 在Django官网下载对应版本之后,解压压缩包,进 ...
- js程序调试技巧
1.No "Access-Control-Allow-origin" 解决方案:这是API参数没有穿对的跨域错误,修改API(ajax请求路径)以保证其参数传递正确即可: 2.lo ...
- PHP弱类型:WordPress Cookie伪造
1 PHP弱类型 PHP是弱类型语言,所以变量会因为使用场景的不同自动进行类型转换.PHP中用 == 以及 != 进行相等判断时,会自动进行类型转换,用 === 以及 !== 进行判断时不会自动转换类 ...
- [C++]Store Credit——Google Code Jam Qualification Round Africa 2010
Google Code Jam Qualification Round Africa 2010 的第一题,很简单. Problem You receive a credit C at a local ...
- Java中print、printf、println的区别(转载)
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.p ...
- SMT贴片机抛料的成因和回流焊横向温差问题
SMT贴片机抛料的主要原因分析 在SMT生产过程中,怎么控制生产成本,提高生产效率,是企业老板及工程师们很关心的事情,而这些跟SMT贴片机的抛料率有很大的联系,以下就谈谈SMT贴片机的抛料问题. 所谓 ...
- 第25周五迷茫定位&转行理论建议
今天下午请假办了无房证明和单身证明,准备开始贷款买房的征程,在犹豫纠结中我选择推进这个事情,之前的经验告诉我生活中可以面临改变或不改变境况的选择是要尽可能的选择改变,因为我还年轻.回来后知乎上看了一个 ...
- 实习生的Django[1]
尽管学期尚未结束,暑假尚未到来,可是大三的同学非常多已经和我一样開始实习或者实习一段时间了.我仅仅面试了一间数据挖掘的公司的研发部,还算顺利通过. 来这里实习后,由于网络原因,昨天没有刷题也没有写BL ...
- 阿里云Ubuntu部署java web(2) - 配置tomcat
系统版本号:Ubuntu12.04 64位 安装: 首先要安装java(測试时使用的版本号是6b27-1.12.6-1ubuntu0.12.04.2).版本号可自行选择,但不同版本号配置方法可能不同. ...