{"id":392,"date":"2019-09-17T14:17:46","date_gmt":"2019-09-17T06:17:46","guid":{"rendered":"http:\/\/iqotom.com\/?p=392"},"modified":"2019-09-17T14:17:49","modified_gmt":"2019-09-17T06:17:49","slug":"freebsd-12-atheros-%e6%97%a0%e7%ba%bf%e7%bd%91%e5%8d%a1%e6%8e%a5%e5%85%a5%e7%82%b9%e8%ae%be%e7%bd%ae","status":"publish","type":"post","link":"http:\/\/iqotom.com\/?p=392","title":{"rendered":"FreeBSD 12 Atheros \u65e0\u7ebf\u7f51\u5361\u63a5\u5165\u70b9\u8bbe\u7f6e"},"content":{"rendered":"\n<p><strong>\u5185\u6838\u7248\u672c\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uname -a\nFreeBSD XMAN 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC  amd64<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u9a71\u52a8\u8bbe\u7f6e<\/h3>\n\n\n\n<p> \u627e\u5230\u8981\u4f7f\u7528\u7684\u9a71\u52a8\u7a0b\u5e8fath0 <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># sysctl net.wlan.devices\nnet.wlan.devices: ath0<\/code><\/pre>\n\n\n\n<p> \u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u547d\u4ee4\u627e\u5230\u76f8\u5e94\u7684\u786c\u4ef6\uff1a <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pciconf -lv ath0\nath0@pci0:2:0:0:        class=0x028000 card=0xe052105b chip=0x0034168c rev=0x01 hdr=0x00\n    vendor     = 'Qualcomm Atheros'\n    device     = 'AR9462 Wireless Network Adapter'\n    class      = network<\/code><\/pre>\n\n\n\n<p> \u52a0\u8f7d\u6a21\u5757\uff0c\u4fee\u6539 <code>\/boot\/loader.conf<\/code> \u540ereboot\u91cd\u542f <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># cat \/boot\/loader.conf\nif_ath_load=\"YES\"\nif_wi_load=\"YES\"\nif_ath_pci_load=\"YES\"\nwlan_wep_load=\"YES\"\nwlan_ccmp_load=\"YES\"\nwlan_tkip_load=\"YES\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u65e0\u7ebfAP\u8bbe\u7f6e<\/h3>\n\n\n\n<p> \u52a0\u8f7d\u65e0\u7ebf\u7f51\u7edc\u652f\u6301\u540e\uff0c\u68c0\u67e5\u65e0\u7ebf\u8bbe\u5907\u662f\u5426\u652f\u6301\u57fa\u4e8e\u4e3b\u673a\u7684\u63a5\u5165\u70b9\u6a21\u5f0f\uff0c\u4e5f\u79f0\u4e3ahostap\u6a21\u5f0f: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ifconfig wlan0 create wlandev ath0\n# ifconfig wlan0 list caps\ndrivercaps=4f8def41&lt;STA,FF,IBSS,PMGT,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,TXFRAG>\ncryptocaps=1f&lt;WEP,TKIP,AES,AES_CCM,TKIPMIC>\nhtcaps=20701ef&lt;LDPC,CHWIDTH40,SHORTGI20,SHORTGI40,TXSTBC><\/code><\/pre>\n\n\n\n<p> \u8fd9\u91cc\u6253\u5370\u4e86 <strong>HOSTAP<\/strong>\uff0c\u8bc1\u5b9e\u4e86\u8fd9\u5f20\u65e0\u7ebf\u7f51\u5361\u53ef\u4ee5\u5145\u5f53AP\u3002\u8fd8\u5217\u51fa\u4e86\u5404\u79cd\u652f\u6301\u7684\u52a0\u5bc6\u65b9\u5f0f\uff1aWEP\uff0c TKIP\u548cAES\u3002\u6b64\u4fe1\u606f\u6307\u793a\u53ef\u4ee5\u5728AP\u4e0a\u4f7f\u7528\u54ea\u4e9b\u5b89\u5168\u534f\u8bae\u3002 <br> \u65e0\u7ebf\u8bbe\u5907\u53ea\u80fd\u5728\u521b\u5efa\u7f51\u7edc\u8bbe\u5907\u65f6\u8fdb\u5165hostap\u6a21\u5f0f\uff0c\u56e0\u6b64\u5fc5\u987b\u9996\u5148\u9500\u6bc1\u5148\u524d\u521b\u5efa\u7684\u8bbe\u5907: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ifconfig wlan0 destroy<\/code><\/pre>\n\n\n\n<p> \u7136\u540e\u5728\u8bbe\u7f6e\u5176\u4ed6\u53c2\u6570\u4e4b\u524d\u4f7f\u7528\u6b63\u786e\u7684\u9009\u9879\u91cd\u65b0\u751f\u6210: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ifconfig wlan0 create wlandev ath0 wlanmode hostap\n# ifconfig wlan0 inet 10.10.10.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1<\/code><\/pre>\n\n\n\n<p> \u518d\u6b21\u901a\u8fc7ifconfig \u67e5\u770bwlan0\u63a5\u53e3\u72b6\u6001\uff1a <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ifconfig wlan0\nwlan0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n ether 3c:77:e6:50:2a:69\n inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255\n groups: wlan\n ssid freebsdap channel 1 (2412 MHz 11g ht\/20) bssid 3c:77:e6:50:2a:69\n regdomain 108 indoor ecm authmode OPEN privacy OFF txpower 20\n scanvalid 60 protmode CTS ampdulimit 64k ampdudensity 8 shortgi wme\n burst dtimperiod 1 -dfs\n media: IEEE 802.11 Wireless Ethernet autoselect mode 11ng &lt;hostap>\n status: running\n nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL><\/code><\/pre>\n\n\n\n<p> \u5c06\u4e0b\u9762\u7684\u53c2\u6570\u6dfb\u52a0\u5230 <code>\/etc\/rc.conf<\/code> \uff0c\u5728\u5f15\u5bfc\u65f6\u81ea\u52a8\u5b8c\u6210\u914d\u7f6e\uff1a <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wlans_ath0=\"wlan0\"\nhostapd_enable=\"YES\"\ncreate_args_wlan0=\"wlanmode hostap\"\nifconfig_wlan0=\"inet 10.10.10.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1\"<\/code><\/pre>\n\n\n\n<p> \u8fd8\u9700\u8981\u914d\u7f6eWPA2\u5b89\u5168\u534f\u8bae\uff0c\u8fd9\u6837\u624d\u80fd\u5b89\u5168\u8fd0\u884cAP <br> \u914d\u7f6e <code>\/etc\/hostapd.conf<\/code> : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># vim \/etc\/hostapd.conf\ninterface=wlan0\ndebug=1\nctrl_interface=\/var\/run\/hostapd\nctrl_interface_group=wheel\nssid=freebasap\nwpa=2\nwpa_passphrase=freebsdmall #password\nwpa_key_mgmt=WPA-PSK\nwpa_pairwise=CCMP<\/code><\/pre>\n\n\n\n<p> \u542f\u52a8hostapd\u670d\u52a1 <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># service hostapd forcestart\nStarting hostapd.\nConfiguration file: \/etc\/hostapd.conf\nUsing interface wlan0 with hwaddr 3c:77:e6:50:2a:69 and ssid \"freebasap\"\nwlan0: interface state UNINITIALIZED->ENABLED\nwlan0: AP-ENABLED<\/code><\/pre>\n\n\n\n<p> \u5230\u4e86\u8fd9\u4e00\u6b65\u79fb\u52a8\u8bbe\u5907\u5e94\u8be5\u53ef\u4ee5\u770b\u5230SSID\u4e86\uff0c\u4e5f\u53ef\u4ee5\u5bf9\u63a5\u5165\u70b9\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\uff0c\u4f46\u662f\u53ea\u80fd\u901a\u8fc7\u8bbe\u7f6e\u9759\u6001IP\u8fde\u63a5\uff0c\u5e76\u4e14\u65e0\u6cd5\u8fde\u63a5\u516c\u7f51 <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u65e0\u7ebfDHCP\u670d\u52a1\u8bbe\u7f6e<\/h3>\n\n\n\n<p> \u8bbe\u7f6eDHCP\u670d\u52a1\u5668\uff0c\u9700\u8981\u4f7f\u7528DHCPd\u5b88\u62a4\u7a0b\u5e8f\u76d1\u542cwlan0\u63a5\u53e3\u7684ip\u5730\u5740<br> \u5b89\u88c5ISC\u7684dhcpd\u670d\u52a1\u5668<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd usr\/ports\/net\/isc-dhcp44-server\/\nmake install clean<\/code><\/pre>\n\n\n\n<p> \u6267\u884c\u4e0a\u8ff0\u6307\u4ee4\u540e\u5c06\u51fa\u73b0\u5982\u4e0b\u753b\u9762 <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"851\" height=\"442\" src=\"http:\/\/iqotom.com\/wp-content\/uploads\/2019\/09\/freebsd-atheros-ap-set.png\" alt=\"\" class=\"wp-image-391\" srcset=\"http:\/\/iqotom.com\/wp-content\/uploads\/2019\/09\/freebsd-atheros-ap-set.png 851w, http:\/\/iqotom.com\/wp-content\/uploads\/2019\/09\/freebsd-atheros-ap-set-300x156.png 300w, http:\/\/iqotom.com\/wp-content\/uploads\/2019\/09\/freebsd-atheros-ap-set-768x399.png 768w\" sizes=\"(max-width: 851px) 100vw, 851px\" \/><figcaption>isc-dhcp-server<\/figcaption><\/figure>\n\n\n\n<p> \u4f7f\u7528\u9ed8\u8ba4\u8bbe\u7f6e\u5373\u53ef <br> \u5b89\u88c5\u5b8c\u540e\uff0c\u5728 <code>\/usr\/local\/etc\/<\/code> \u751f\u6210dhcpd.conf.sample \u548c dhcpd.conf \u6211\u4eec\u5bf9dhcpd.conf\u8fdb\u884c\u4fee\u6539 <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># cat usr\/local\/etc\/dhcpd.conf\n\noption domain-name \"freebsd.org\";\noption domain-name-servers 8.8.8.8;\ndefault-lease-time 86400;\nmax-lease-time 86400;\nlog-facility local7;\nddns-update-style none;\nsubnet 10.10.10.0 netmask 255.255.255.0 {\n  range 10.10.10.100 10.10.10.150;\n  option domain-name-servers 8.8.8.8;\n  option domain-name \"freebsd.org\";\n  option routers 10.10.10.1;\n  option broadcast-address 10.10.10.255;\n  default-lease-time 3600;\n  max-lease-time 7200;\n}<\/code><\/pre>\n\n\n\n<p> \u542f\u52a8\u670d\u52a1 <code>service isc-dhcpd start<\/code> \u540e\u8fde\u63a5AP\uff0c\u79fb\u52a8\u8bbe\u5907\u53ef\u4ee5\u81ea\u52a8\u83b7\u53d6\u5230ip\uff0c\u4f46\u8fd8\u4e0d\u80fd\u8bbf\u95ee\u7f51\u7edc <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># service isc-dhcpd start\nStarting dhcpd.\nInternet Systems Consortium DHCP Server 4.4.1\nCopyright 2004-2018 Internet Systems Consortium.\nAll rights reserved.\nFor info, please visit https:\/\/www.isc.org\/software\/dhcp\/\nConfig file: \/usr\/local\/etc\/dhcpd.conf\nDatabase file: \/var\/db\/dhcpd\/dhcpd.leases\nPID file: \/var\/run\/dhcpd\/dhcpd.pid\nWrote 0 leases to leases file.\nListening on BPF\/wlan0\/3c:77:e6:50:2a:69\/10.10.10.0\/24\nSending on   BPF\/wlan0\/3c:77:e6:50:2a:69\/10.10.10.0\/24\nSending on   Socket\/fallback\/fallback-net<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">FreeBSD PF\u9632\u706b\u5899\u8bbe\u8bbe\u7f6e<\/h3>\n\n\n\n<p> \u542f\u52a8FreeBSD\u7684\u7f51\u5173\u6a21\u5f0f\uff0c\u5141\u8bb8\u6570\u636e\u5305\u4ecewifi\u8f6c\u53d1\u5230lan\u53e3\uff0c\u4fee\u6539\u914d\u7f6e <code>\/etc\/rc.conf<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>## allow packets to be passed from one network interface to another\ngateway_enable=\"YES\" # Enable as LAN gateway\n## PF firewall\npf_enable=\"YES\"                 # Enable PF (load module if required)\npf_rules=\"\/etc\/pf.conf\"         # rules definition file for pf\npf_flags=\"\"                     # additional flags for pfctl start up\npflog_enable=\"YES\"              # To enable logging support\npflog_logfile=\"\/var\/log\/pflog\"  # where pflogd should store the logfile\npflog_flags=\"\"                  # additional flags for pflogd start up<\/code><\/pre>\n\n\n\n<p> \u4fdd\u5b58\u6240\u9700\u7684\u7f16\u8f91\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u952e\u5165\u4ee5\u4e0b\u5185\u5bb9 \u6765\u542f\u52a8PF\u4ee5\u83b7\u53d6\u65e5\u5fd7\u8bb0\u5f55\u652f\u6301\uff1a <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># service pf start\n# service pflog start<\/code><\/pre>\n\n\n\n<p> \u542f\u7528\u7f51\u5173\u6570\u636e\u8f6c\u53d1\uff0c\u8f6c\u53d1IPV4\u6570\u636e\u5305\uff1a <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># sysctl net.inet.ip.forwarding=1   #forward IPv4 packets\n# sysctl net.inet6.ip6.forwarding=1 ##IPV6<\/code><\/pre>\n\n\n\n<p> \u6ce8\u610f\u5982\u679c\u8981\u8f6c\u53d1IPV6\uff0c\u5728 <code>\/etc\/rc.conf<\/code> \u4e2d\u9700\u8981\u6dfb\u52a0<strong> ipv6_gateway_enable =\u201cYES\u201d<\/strong><\/p>\n\n\n\n<p> FreeBSD\u5b89\u88c5\u5305 \u793a\u4f8b\u6587\u4ef6\u8def\u5f84\uff1a  <code>\/usr\/share\/examples\/pf\/<\/code><br> \u4ee5\u4e0b\u662f\u4e2a\u7b80\u5355\u7684Pf\u9632\u706b\u5899\u914d\u7f6e\uff0c\u5141\u8bb8\u6240\u6709\u901a\u8fc7\u65e0\u7ebf\u7f51\u5361\u7684\u6570\u636e\u5305\u5230\u6709\u7ebf\u7f51\u5361LAN\u3002\u6709\u7ebf\u7f51\u5361\u662figb0\u63a5\u53e3\uff0c\u65e0\u7ebf\u7f51\u5361\u662fwlan0\u63a5\u53e3\u3002 <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># vim etc\/pf.conf\n#block in all  \n#pass out all keep state       #allows all\n#interfaces\nlan_if=\"igb0\"\nwifi_if=\"wlan0\"\nlocalnet=$wifi_if:network\n#NAT\nnat on $lan_if from $localnet to any -> ($lan_if)\nblock all\nblock in log all\npass out log quick\n#pass inet4 and inet6 traffic in on wifi and lan\npass in log on $wifi_if inet\npass in log on $lan_if inet\n\npass from {lo0, $localnet} to any keep state<\/code><\/pre>\n\n\n\n<p> \u6267\u884c  <code>pfctl -f \/etc\/pf.conf<\/code> \u5237\u65b0\u8fc7\u6ee4\u5668\uff0c\u8fde\u63a5WIFI\u5c31\u53ef\u4ee5\u8bbf\u95ee\u7f51\u7edc\u4e86\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p> \u53c2\u8003\u6587\u68631\uff1a<a href=\"https:\/\/www.freebsd.org\/doc\/handbook\/network-wireless.html\">https:\/\/www.freebsd.org\/doc\/handbook\/network-wireless.html<\/a><br> \u53c2\u8003\u6587\u68632\uff1a<a href=\"https:\/\/calomel.org\/freebsd_wireless_access_point.html\">https:\/\/calomel.org\/freebsd_wireless_access_point.html<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5185\u6838\u7248\u672c\uff1a \u9a71\u52a8\u8bbe\u7f6e \u627e\u5230\u8981\u4f7f\u7528\u7684\u9a71\u52a8\u7a0b\u5e8fath0 \u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u547d\u4ee4\u627e\u5230\u76f8\u5e94\u7684\u786c\u4ef6\uff1a \u52a0\u8f7d\u6a21\u5757\uff0c\u4fee\u6539 \/bo\u2026 <span class=\"read-more\"><a href=\"http:\/\/iqotom.com\/?p=392\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":393,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[38],"_links":{"self":[{"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/posts\/392"}],"collection":[{"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/iqotom.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=392"}],"version-history":[{"count":1,"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/posts\/392\/revisions"}],"predecessor-version":[{"id":394,"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/posts\/392\/revisions\/394"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/iqotom.com\/index.php?rest_route=\/wp\/v2\/media\/393"}],"wp:attachment":[{"href":"http:\/\/iqotom.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/iqotom.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=392"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/iqotom.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}