本文来源:Working with firewalld         其它参考文档:redhat官方中文文档


1.查询类命令

2.设置类命令

3.运行时zone设置

4.永久性zone设置

5.直接选项

6.firewalld目前提供的功能

查询类命令

  • 获取firewalld的状态

    [root@bogon ~]# firewall-cmd --state         #返回firewalld的状态,没有输出
    not running
    [root@bogon ~]# firewall-cmd --state && echo "Running" || echo "Not running" #返回firewalld的状态,并输出
    not running
    Not running
  • 重新加载防火墙而不丢失状态信息:

    [root@bogon ~]# firewall-cmd --reload
    success

    如果您正在使用--complete-reload,则状态信息将丢失。这个选项只能用于遇到严重的防火墙问题时,例如,如果存在状态信息问题,即无法建立连接但防火墙规则正确。

  • 获取所有支持的zone的列表

    [root@bogon ~]# firewall-cmd --get-zones
    block dmz drop external home internal public seccon trusted work
  • 获取所有的zone(带已启用功能)

    [root@bogon ~]# firewall-cmd --list-all-zones
    block
    target: %%REJECT%%
    icmp-block-inversion: no
    interfaces:
    sources:
    services:
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules: dmz
    target: default
    icmp-block-inversion: no
    interfaces:
    sources:
    services: ssh
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules: ......
  • 打印指定的zone(带已启用功能)。如果省略zone,将使用默认区域。

    [root@bogon ~]# firewall-cmd --zone=public --list-all
    public (active)
    target: default
    icmp-block-inversion: no
    interfaces: enp0s3
    sources:
    services: ssh dhcpv6-client rabbitmq-server
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:
  • 获取网络连接的默认zone

    [root@bogon ~]# firewall-cmd --get-default-zone
    public
  • 获取活动zone

    [root@bogon ~]# firewall-cmd --get-active-zones
    public
    interfaces: enp0s3
  • 获取与网络接口相关的zone

    [root@bogon ~]# firewall-cmd --get-zone-of-interface=enp0s3
    public 
  • 查询接口是否在zone中

    [root@bogon ~]#  firewall-cmd --zone=home --query-interface=enp0s3
    yes
  • 列出zone中启用的服务

    [root@bogon ~]# firewall-cmd --zone=home --list-services
    ssh mdns samba-client dhcpv6-client
  • 获取所有支持的服务的列表

    [root@bogon ~]# firewall-cmd --get-services
    RH-Satellite- amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp
    dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master
    high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns
    mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy
    proxy-dhcp ptp pulseaudio puppetmaster quassel rabbitmq-server radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap
    spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local
    xmpp-server
  • 获取所有支持的icmptypes的列表

    [root@bogon ~]#  firewall-cmd --get-icmptypes
    address-unreachable bad-header communication-prohibited destination-unreachable echo-reply echo-request fragmentation-needed host-precedence-violation host-prohibited
    host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation network-prohibited network-redirect network-unknown
    network-unreachable no-route packet-too-big parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect required-option-missing router-advertisement
    router-solicitation source-quench source-route-failed time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect
    tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option

设置类命令

  • 设置默认zone

    [root@bogon ~]# firewall-cmd --set-default-zone=public           #位于默认区域中的所有接口将被推入新的默认区域,该区域定义新的外部发起的连接尝试的限制。活动的连接不受影响。
    Warning: ZONE_ALREADY_SET: public
    success 
  • 添加接口到zone

  • [root@bogon ~]# firewall-cmd --zone=dmz --add-interface=enp0s3                           #如果zone中不存在该接口则添加。如果zone选项被省略,则添加到默认的zone
    success
    [root@bogon ~]# firewall-cmd --zone=dmz --list-all
    dmz (active)
    target: default
    icmp-block-inversion: no
    interfaces: enp0s3
    sources:
    services: ssh
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:  
  • 更改接口所属的区域

    [root@bogon ~]# firewall-cmd --zone=home --change-interface=enp0s3
    The interface is under control of NetworkManager, setting zone to 'home'.
    success
    [root@bogon ~]# firewall-cmd --zone=dmz --list-all
    dmz
    target: default
    icmp-block-inversion: no
    interfaces:
    sources:
    services: ssh
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules: [root@bogon ~]# firewall-cmd --zone=home --list-all
    home (active)
    target: default
    icmp-block-inversion: no
    interfaces: enp0s3
    sources:
    services: ssh mdns samba-client dhcpv6-client
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules: [root@bogon ~]# firewall-cmd --zone=public --list-all
    public
    target: default
    icmp-block-inversion: no
    interfaces:
    sources:
    services: ssh dhcpv6-client rabbitmq-server
    ports:
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules: [root@bogon ~]#
  • 从zone中删除接口
    [root@bogon ~]# firewall-cmd --zone=dmz --remove-interface=enp0s3
    success
  • 在紧急情况下启用恐慌模式以阻止所有网络流量

    [root@bogon ~]# firewall-cmd --panic-on                  #shell客户端失去连接
    success
    [root@bogon ~]# firewall-cmd --panic-off #禁用恐慌模式
    success
    [root@bogon ~]# firewall-cmd --query-panic #查询恐慌模式
    no

运行时zone设置

在运行模式下,对区域的更改不是永久性的。重新加载或重新启动后,更改将消失。

  • 在zone中的启用服务

    firewall-cmd [--zone = <zone>] --add-service = <service> [--timeout = <seconds>]        #如果未设置zone,则将使用默认zone。如果设置了超时,则该服务将仅启用该zone中设置的秒数。
    • 示例:

      [root@bogon ~]# firewall-cmd --zone=home --add-service=ipp-client --timeout=60      #在jome zone中启用ipp-client服务60秒
      success
      [root@bogon ~]# firewall-cmd --add-service=http #在默认zone中启用http服务:
      You're performing an operation over default zone ('public'),
      but your connections/interfaces are in zone 'home' (see --get-active-zones)
      You most likely need to use --zone=home option. success
      [root@bogon ~]# firewall-cmd --zone=public --list-all
      public
      target: default
      icmp-block-inversion: no
      interfaces:
      sources:
      services: ssh dhcpv6-client rabbitmq-server http
      ports:
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
  • 禁用zone中的服务

    firewall-cmd [--zone = <zone>] --remove-service = <service>
    • 示例:

      [root@bogon ~]#  firewall-cmd --zone=public --remove-service=http  #在public zone中禁用http服务
      success
      [root@bogon ~]# firewall-cmd --zone=public --query-service=http #查看http服务在public zone中是否启用
      no
  • 启用区域中的端口和协议组合,端口可以​​是单个端口<端口>或端口范围<端口> - <端口>。协议可以是tcp或udp。

    firewall-cmd [--zone = <zone>] --add-port = <port> [ -  <port>] / <protocol> [--timeout = <seconds>]
  • 禁用区域中的端口和协议组合

    firewall-cmd [--zone = <zone>] --remove-port = <port> [ -  <port>] / <protocol>
  • 查询区域中启用的端口和协议组合

     firewall-cmd [--zone = <zone>] --query-port = <port> [ -  <port>] / <protocol>
  • 在区域中启用伪装(masquerade)

    firewall-cmd [--zone = <zone>] --add-masquerade            #使该区域可以伪装。将私有地址映射并隐藏在公共ip地址的后面,是地址转换的一种方式主要用于路由器。由于内核限制,伪装仅支持IPv4。
  • 禁用区域中的伪装

    firewall-cmd [--zone = <zone>] --remove-masquerade
  • 查询在区域中伪装

     firewall-cmd [--zone=<zone>] --query-masquerade
  • 启用区域中的ICMP块

    firewall-cmd [--zone = <zone>] --add-icmp-block = <icmptype>  #启用了选定的Internet控制消息协议(ICMP)消息的块。ICMP消息既可以是信息请求,也可以是对信息请求的回复或出错情况的响应。
  • 禁用区域中的ICMP块

    firewall-cmd [--zone = <zone>] --remove-icmp-block = <icmptype>
  • 查询区域中的ICMP块

    firewall-cmd [--zone = <zone>] --query-icmp-block = <icmptype>
  • 示例:阻止public zone中的响应应答消息(echo-reply messages ):

     firewall-cmd --zone=public --add-icmp-block=echo-reply
  • 启用区域中的端口转发或端口映射

    firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

    端口映射到另一个主机上的同一端口或同一主机上的另一个端口或另一个主机上的另一个端口。该端口可以是单端口<端口>或端口范围<端口> - <端口>。该协议是tcp或udp。toport是端口<端口>或端口范围<端口> - <端口>。toaddr是一个IPv4地址。由于内核限制,端口转发仅为IPv4。

  • 禁用区域中的端口转发或端口映射

     firewall-cmd [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
  • 查询区域中的端口转发或端口映射

     firewall-cmd [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
  • 示例:在home zone 中将 ssh转发到主机127.0.0.2

    [root@bogon ~]# firewall-cmd --zone=home --add-forward-port=port=:proto=tcp:toaddr=127.0.0.2
    success

永久zone处理(在“运行时zone”的命令的第一个选项添加--permanent)

永久选项不会直接影响运行时。这些选项只有在重新加载或重新启动后才可用。要有运行时和永久设置,您需要同时提供两者。--permanent选项须有是所有永久调用的第一个选项。

  • 获取支持的永久服务列表

    [root@bogon ~]# firewall-cmd --permanent --get-services
    RH-Satellite- amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel rabbitmq-server radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
  • 获取支持的永久icmptypes列表

    [root@bogon ~]# firewall-cmd --permanent --get-icmptypes
    address-unreachable bad-header beyond-scope communication-prohibited destination-unreachable echo-reply echo-request failed-policy fragmentation-needed host-precedence-violation host-prohibited host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation network-prohibited network-redirect network-unknown network-unreachable no-route packet-too-big parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect reject-route required-option-missing router-advertisement router-solicitation source-quench source-route-failed time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option
  • 获取支持的永久区域列表

    [root@bogon ~]# firewall-cmd --permanent --get-zones
    block dmz drop external home internal public seccon trusted work
  • 启用区域中的服务

    firewall-cmd --permanent [--zone = <zone>] --add-service = <service>  #这可以使区域中的服务永久。如果区域选项被省略,则使用默认区域
  • 禁用区域中的服务

    firewall-cmd --permanent [--zone = <zone>] --remove-service = <service>
  • 查询区域中是否启用服务

    firewall-cmd --permanent [--zone = <zone>] --query-service = <service>
  • 示例:在家庭区域中永久启用服务ipp-client

    firewall-cmd --permanent --zone = home --add-service = ipp-client
  • 在区域中永久启用端口和协议组合

    firewall-cmd --permanent [--zone = <zone>] --add-port = <port> [ -  <port>] / <protocol>
  • 在区域中永久禁用端口和协议组合

    firewall-cmd --permanent [--zone = <zone>] --remove-port = <port> [ -  <port>] / <protocol>
  • 查询区域中是否永久启用端口和协议组合

     firewall-cmd --permanent [--zone = <zone>] --query-port = <port> [ -  <port>] / <protocol>
  • 示例:在家庭区域中永久启用端口443 / tcp

    firewall-cmd --permanent --zone = home --add-port =  / tcp

  .....等(同运行时zone)

直接选项

直接选项可以更直接地访问防火墙。这些选项要求用户知道基本的iptables概念,即table(filter / mangle / nat / ...),chain(INPUT / OUTPUT / FORWARD / ...),命令(-A / -D / -I / .. 。),参数(-p / -s / -d / -j / ...)和目标(ACCEPT / DROP / REJECT / ...)。直接选项应该仅作为最后的手段,当它不可能使用时诸如--add-service=‘service’或--add-rich-rule='rule'的命令时。每个选项的第一个参数必须是ipv4或ipv6或eb。使用ipv4,它将用于IPv4(iptables(8)),ipv6用于IPv6(ip6tables(8))和eb用于以太网桥(ethernet bridges)(ebtables(8))。

  • 将命令传递给防火墙。<args>可以是所有的iptables,ip6tables和ebtables命令行参数

    firewall-cmd --direct --passthrough {ipv4 | ipv6 | eb} <args>
  • 将一个新chain <chain> 添加到一个table <table>中。

    firewall-cmd [--permanent] --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain>
  • 从table <table>中删除名称为<chain>的chain 。

    firewall-cmd [--permanent] --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain>
  • 查询table <table>中是否存在名称<chain>的chain。如果为true,则返回0,否则返回1。

    firewall-cmd [--permanent] --direct --query-chain {ipv4 | ipv6 | eb} <table> <chain>
  • 获取添加到table <table>中的所有的chain列表(用空格分隔)

    firewall-cmd [--permanent] --direct --get-chains { ipv4 | ipv6 | eb } <table>
  • 在table<table>中的带有priority<priority>的chain<chain>中添加一条带有<args>参数的规则

    firewall-cmd [--permanent] --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>
  • 从table<table>中的chain<chain>中移除一条规则

    firewall-cmd [--permanent] --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args> 
  • 查询table<table>中的chain<chain>是否存在带参数<args>的规则。如果存在则返回0,否则返回1。

    firewall-cmd [--permanent] --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args>
  • 获取添加到table<table>中的所有<chain>规则(换行符分隔的参数列表)。

    firewall-cmd [--permanent] --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain>

firewalld目前提供的功能

D-BUS Interface

D-BUS接口提供关于防火墙状态的信息,并使其能够启用、禁用和查询防火墙设置。一般用于其它应用程序调用设置防火墙。

Zones

网络或防火墙区域定义用于连接的接口的信任级别。firewalld提供了几个预定义的区域。区域配置选项和通用文件信息在firewalld.zone(5)手册页中描述。

Services

服务可以是本地端口和目的地的列表,此外,如果启用了服务,还可以自动加载防火墙helper模块列表。使用预定义的服务使用户更容易启用和禁用对服务的访问。服务配置选项和通用文件信息在firewalld.service(5)手册页中描述

ICMP types

Internet控制消息协议(ICMP)用于在Internet协议(IP)中交换信息和错误消息。可以在firewalld中使用ICMP类型来限制这些消息的交换。ICMP类型配置选项和通用文件信息在firewalld.icmptype(5)手册页中描述。

Direct interface

直接接口主要被服务或应用程序用于来添加特定的防火墙规则。

Runtime configuration

运行时配置不是永久的,只有reload后才会生效。在重启或停止服务或重新启动系统后,这些选项将消失。

Permanent configuration

永久配置存储在配置文件中,并将在每个机器引导或服务重新加载或重新启动时生效。

Tray Applet

托盘applet firewall-applet直观地显示了防火墙的状态,也为用户提供了防火墙的问题。它还可以通过调用firewall-config来配置设置。

Graphical Configuration Tool

......

Command Line client

......

Support for ebtables

......

Default/Fallback configuration in /usr/lib/firewalld

该目录包含由firewalld为icmptypes、服务和区域提供的默认和后备配置。firewalld包中提供的文件不应该被更改。

System configuration settings in /etc/firewalld

这里存储的系统或用户配置要么是由系统管理员创建的,要么是由firewalld的配置接口或手工定制的。这些文件将重载默认的配置文件。

要手动更改预定义的icmptype、区域或服务的设置,请将文件从默认配置目录复制到系统配置目录中的相应目录,并相应地更改它。

如果您正在加载具有默认或后备文件的区域的默认值,那么/etc/firewalld中的文件将被重命名为<file>.old

第三篇:使用firewall-cmd的更多相关文章

  1. 【开源.NET】轻量级内容管理框架Grissom.CMS(第三篇解析配置文件和数据以转换成 sql)

    该篇是 Grissom.CMS 框架系列文章的第三篇, 主要介绍框架用到的核心库 EasyJsonToSql, 把标准的配置文件和数据结构解析成可执行的 sql. 该框架能实现自动化增删改查得益于 E ...

  2. SaltStack 入门到精通第三篇:Salt-Minion配置文件详解

    SaltStack 入门到精通第三篇:Salt-Minion配置文件详解 作者:ArlenJ  发布日期:2014-06-09 17:52:16   ##### 主要配置设置 ##### 配置 默认值 ...

  3. 第三篇数据库与ORM

    第三篇 数据库与ORM 1 新建数据库 2 数据库的配置 3 ORM表模型 4 ORM之增 5 ORM之删 6 ORM之改 7 ORM之查 1 新建数据库 在终端cmd中 mysql –uroot – ...

  4. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  5. (转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建Alwa ...

  6. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. 第三篇 Entity Framework Plus 之 Query Cache

    离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇 第一篇 Entity Framework Plus 之 A ...

  8. 我的屌丝giser成长记-研三篇

    进入研三以来,基本都是自己的自由时间了,从导师的项目抽离出来,慢慢的都交给师弟他们来负责.研三的核心任务就是找工作以及写毕业论文,因为有导师科研基金项目成果作为支撑,所以自己的论文没什么可担心,一切都 ...

  9. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  10. 前端工程师技能之photoshop巧用系列第三篇——切图篇

    × 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切 ...

随机推荐

  1. 【转】hexo博客图片问题

    1.首先确认_config.yml 中有 post_asset_folder:true. Hexo 提供了一种更方便管理 Asset 的设定:post_asset_folder 当您设置post_as ...

  2. await和async再学习

    await太不容易理解了,自己常常迷惑,不知道该怎么用. 文章:探索c#之Async.Await剖析 这篇文章,有一个很清晰的描述: 使用Async标记方法Async1为异步方法,用Await标记Ge ...

  3. java课程设计——2048

    1.团队介绍 2.项目git地址 [https://gitee.com/SMTwula/java036.git] 3.项目git提交记录截图 沈梦婷 田亚琴 4.项目功能架构图与主要功能流程图 5.项 ...

  4. Qt5.6关联VS2013,配置VAssistX

    1. 安装Qt qt-creator-opensource-windows-x86-4.2.0.exe 2. 安装Qt VS插件 qt-vs-addin-1.2.5.exe 3. 配置ASSISTX ...

  5. [剑指Offer] 29.最小的K个数

    [思路1]全排序(快排)之后取出前K个数.O(K+nlogn) class Solution { public: vector<int> GetLeastNumbers_Solution( ...

  6. [Leetcode] 20. Valid Parentheses(Stack)

    括号匹配问题,使用栈的特点,匹配则出栈,否则入栈,最后栈为空则全部匹配.代码如下: class Solution { public: bool isValid(string s) { stack< ...

  7. 【Python】Python—判断变量的基本类型

    type() >>> type(123)==type(456) True >>> type(123)==int True >>> type('ab ...

  8. WebService使用介绍(二)

    Soap soap是什么 SOAP 是一种网络通信协议 SOAP即Simple Object Access Protocol简易对象访问协议 SOAP 用于跨平台应用程序之间的通信 SOAP 被设计用 ...

  9. c#中数据库字符串的连接几种方式

    ADO.net 中数据库连接方式(微软提供) 微软提供了以下四种数据库连接方式:System.Data.OleDb.OleDbConnectionSystem.Data.SqlClient.SqlCo ...

  10. 编写一个 Chrome 浏览器扩展程序

    浏览器扩展允许我们编写程序来实现对浏览器元素(书签.导航等)以及对网页元素的交互, 甚至从 web 服务器获取数据,以 Chrome 浏览器扩展为例,扩展文件包括: 一个manifest文件(主文件, ...