netsh-网络配置命令行工具

netsh 介绍与语法

netsh(Network Shell) 是一个windows系统本身提供的功能强大的网络配置命令行工具,可用来显示与修改当前正在运行的计算机的网络配置(如:IP地址、网关、DNS和MAC地址等)。Netsh还提供脚本功能,可以对特定的计算机以批处理方式运行一组命令。Netsh使用帮助程序提供称为上下文(Context)的广泛功能集。上下文(Context)是特定于网络组件一组命令,它们通过为一个或多个服务、实用程序或协议提供配置和监视支持来扩展Netsh的功能。要运行Netsh命令,必须从命令提示符(cmd.exe)启动Netsh并更改到包含要使用的命令的上下文(Context)。可以使用的上下文(Context)取决于用户安装的网络组件。

 

命令用法: netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *] [Command | -f ScriptFile]

上下文命令(Context)(交互模式下的子命令):

? - 显示命令列表。

add - 在项目列表上添加一个配置项目。

advfirewall - 更改到 `netsh advfirewall' 上下文。

branchcache - 更改到 `netsh branchcache' 上下文。

bridge - 更改到 `netsh bridge' 上下文。

delete - 在项目列表上删除一个配置项目。

dhcpclient - 更改到 `netsh dhcpclient' 上下文。

dnsclient - 更改到 `netsh dnsclient' 上下文。

dump - 显示一个配置脚本。

exec - 运行一个脚本文件。

firewall - 更改到 `netsh firewall' 上下文。

help - 显示命令列表。

http - 更改到 `netsh http' 上下文。

interface - 更改到 `netsh interface' 上下文。

ipsec - 更改到 `netsh ipsec' 上下文。

lan - 更改到 `netsh lan' 上下文。

mbn - 更改到 `netsh mbn' 上下文。

namespace - 更改到 `netsh namespace' 上下文。

netio - 更改到 `netsh netio' 上下文。

p2p - 更改到 `netsh p2p' 上下文。

ras - 更改到 `netsh ras' 上下文。

rpc - 更改到 `netsh rpc' 上下文。

set - 更新配置设置。

show - 显示信息。

trace - 更改到 `netsh trace' 上下文。

wcn - 更改到 `netsh wcn' 上下文。

wfp - 更改到 `netsh wfp' 上下文。

winhttp - 更改到 `netsh winhttp' 上下文。

winsock - 更改到 `netsh winsock' 上下文。

wlan - 更改到 `netsh wlan' 上下文。

下面只举例几个常用命令及子命令:

 


netsh 子命令

1. netsh interface

下列的 子上下文可用:

6to4 httpstunnel ipv4 ipv6 isatap portproxy tcp teredo

 

(1)显示本地ip地址及其他信息

netsh interface ipv4 show config

 

(2)将本地计算机的网络连接名称设置为"本地连接",网络设置为动态分配

netsh interface ipv4 set address name="本地连接" source=dhcp(需要管理员权限)

 

(3)将本地计算机的网络连接名称设置为"本地连接",网络设置为静态,本地ip地址为"192.168.1.6",默认网关为"192.168.1.1"(需要管理员权限运行)

netsh interface ipv4 set address name="本地连接" source=static addr=192.168.1.6 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1

 

2. netsh wlan

(1)显示本地计算机上所有无线网路配置的文件列表

netsh wlan show profiles

(2)显示本地计算机连接过的无线网络,名称为"HUAWEI"的明文密码

netsh wlan show profiles name="HUAWEI" key=clear

 

3. netsh firewall

? 显示命令列表

add 添加防火墙配置

delete 删除防火墙配置

dump 显示一个配置脚本

help 显示命令列表

reset 将防火墙配置重置为默认值。

set 置防火墙配置

show 显示防火墙配置

add allowedprogram 添加防火墙允许的程序配置。

add portopening 添加防火墙端口配置

delete allowedprogram 删除防火墙允许的程序配置

delete portopening 删除防火墙端口配置

set allowedprogram 设置防火墙允许的程序配置

set icmpsetting 设置防火墙 ICMP 配置

set logging 设置防火墙记录配置

set multicastbroadcastresponse 设置防火墙多播/广播响应配置

set notifications 设置防火墙通知配置

set opmode 设置防火墙操作配置

set portopening 设置防火墙端口配置

set service 设置防火墙服务配置

show allowedprogram 显示防火墙允许的程序配置

show config 显示防火墙配置。

show currentprofile 显示当前防火墙配置文件

show icmpsetting 显示防火墙 ICMP 配置

show logging 显示防火墙记录配置

show multicastbroadcastresponse 显示防火墙多播/广播响应配置

show notifications 显示防火墙操作配置

show opmode 显示防火墙端口配置

show portopening 显示防火墙端口配置

show service 显示防火墙服务配置

show state 显示当前防火墙状态 

 

(1)查看防火墙放行的程序

netsh firewall show allowedprogram

(2)关闭(专用)防火墙(需要管理员权限运行)

netsh firewall set opmode mode=disable

(3)开启(专用)防火墙(需要管理员权限运行)

netsh firewall set opmode mode=enable

(4)打开445端口

netsh firewall set portopening TCP 445 ENABLE

(5)创建一条防火墙规则,允许"hack"用户通过4444端口访问网络

netsh firewall add portopening TCP 4444 "hack" ENABLE ALL

 

4. netsh advfirewall

(1)显示防火墙策略中活动配置文件的属性

netsh advfirewall show currentprofile

(2)关闭防火墙(公用与专用)(需要管理员权限运行)

netsh advfirewall set allprofiles state off

(3)开启防火墙(公用与专用)(需要管理员权限运行)

netsh advfirewall set allprofiles state on

(4)在所有配置文件中设置默认阻挡入站并允许出站通信

netsh advfirewall set allprofiles firewallpolicy blockinbound.allowoutbound

(5)为TCP端口80添加阻挡的出站规则

netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out localport=80 action=block

(6)为TCP端口80通信添加需要安全和加密的入站规则

netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow

(7)为不具有封装的"c:\nei.exe"添加入站规则

netsh advfirewall firewall add rule name="allow nei" protocol=TCP dir=in program="c:\nei.exe" security=authnoencap action=allow

(8)查看入站规则"allow80"的详细信息

netsh advfirewall firewall show rule name="allow80"

 

5. netsh winsock

winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口 。

 

audit – 显示已经安装和删除的 Winsock LSP 列表。

dump – 显示一个配置脚本。

help – 显示命令列表。

remove – 从系统中删除 Winsock LSP。

reset – 重置 Winsock 目录为清除状态。

set – 设置 Winsock 选项。

show – 显示信息。

 

(1)将网络编程接口恢复到默认状态

netsh winsock reset