華碩ac68u 暢游 IPV6

ipv6時(shí)代

公網(wǎng)IP不再是稀缺資源厢漩,IPV6和IPV4最本質(zhì)上的區(qū)別膜眠。大量可用的IP地址,拋棄了NAT那一套溜嗜,全程走通告宵膨,不再需要DHCP。(PS:特殊場景仍然有DHCP6用途)

擁抱IPV6

以AC68U機(jī)器為例(梅林固件炸宵、其它魔改梅林固件同理)辟躏,其它ASUS系列機(jī)器同理。

一土全、開啟路由器V6支持

進(jìn)入192.168.0.1(你路由器地址)捎琐,

高級設(shè)置欄目/IPV6

QQ20210204-222054@2x.png

然后開啟IPV6支持

QQ20210204-222630@2x.png

二、測試IPV6是否工作正常

打開測試IPV6

如圖裹匙,這樣就算成功了

QQ20210204-222926@2x.png

有了IPV6可以做什么瑞凑?

1.內(nèi)網(wǎng)存儲(私有網(wǎng)盤)

通過使用Cloudnext 等一系列開源私有網(wǎng)盤工具,我們可以搭建自己的內(nèi)網(wǎng)存儲

  1. 遠(yuǎn)程ssh

  2. 其它WEB服務(wù)(注:80概页、443端口是需要備案才能使用的籽御,最好不要開放這兩個(gè)端口出去;大部分時(shí)候開放了也不能使用)

  3. 其它需要使用公網(wǎng)IP的場景

IPV6與安全

開啟了IPV6 給予了我們方便,同時(shí)也帶來了一些安全隱患技掏。我們需要使用ASUS固件上的防火墻來增加安全防護(hù)铃将。

1.開啟IPV6防火墻

未正確配置會導(dǎo)致服務(wù)不能使用

如圖,我們把IPV6防火墻啟用

QQ20210204-223714@2x.png

2.防火墻配置

點(diǎn)擊左側(cè)高級設(shè)置-IPv6 找到 “內(nèi)部網(wǎng)絡(luò) IPv6 地址” 選項(xiàng)哑梳,復(fù)制右邊的制

得到如:

2401:8262:f80:5555::1

我們在這串地址后面加上/64

變成了 2401:8262:f80:5555::1/64

3.開放端口(得到了內(nèi)網(wǎng)網(wǎng)段地址劲阎,我們就可以去開放端口了)

回到高級設(shè)置-防火墻,拉到最下面

QQ20210204-223714@2x.png

做完之后鸠真,我們點(diǎn)擊 “應(yīng)用本頁面設(shè)置”悯仙,就可以在防火墻開啟的情況下,正常訪問我們允許的端口號了弧哎。

進(jìn)階DDNS

ps:雖然我們有了公網(wǎng)IP雁比,但家庭寬帶仍然不是固定的。所以我們需要使用DDNS撤嫩,來綁定我們的域名。

推薦使用cloudflare

我們通過每5min跑一個(gè)腳本蠢终,通過cloudflare的 api 去上報(bào)我們最新IPV6地址序攘,達(dá)到我們始終能通過域名正確解析的目的。

以下是腳本

安裝 cloudflare sdk


sudo pip install cloudflare


# coding: utf-8

# by longbob

import json

import os

import CloudFlare

CACHE_PATH = os.path.dirname(os.path.abspath(__file__)) + '/cloudfile'

ZONE_NAME = '你的域名 如 baidu.com'

UPDATE_ZONE_NAME = '主機(jī)名+域名 如 www.baidu.com'

TOKEN = '你的CloudFlare TOKEN'

EMAIL = '你的CloudFlare 郵箱'

dataFile = CACHE_PATH + '/data'

cf = CloudFlare.CloudFlare(token=TOKEN, email=EMAIL, debug=True)

def set_cloud_file_d_dns(ipv6, dns_record_id, zone_id):

    dns_records = [

        {'name': UPDATE_ZONE_NAME, 'type': 'AAAA', 'content': ipv6, 'proxied': False, 'ttl': 120},

    ]

    for dns_record in dns_records:

        r = cf.zones.dns_records.put(zone_id, dns_record_id, data=dns_record)

    print('更新完成')

def get_cloud_file_info(ipv6):

    if os.path.exists(CACHE_PATH):

        if os.path.isfile(dataFile):

            # 存在緩存數(shù)據(jù) 直接使用

            fptr = open(dataFile, 'r')

            body = json.loads(fptr.read())

            fptr.close()

            return body

    else:

        # create cache

        os.mkdir(CACHE_PATH, 755)

    # update

    zone_info = cf.zones.get(params={'name': ZONE_NAME})

    zone_id = zone_info[0]['id']

    dns_records = cf.zones.dns_records.get(zone_id, params={'name': UPDATE_ZONE_NAME})

    dns_record_id = dns_records[0]['id']

    res = {'zone_id': zone_id, 'dns_record_id': dns_record_id, 'ipv6': dns_records[0]['content']}

    with open(dataFile, 'w+') as p:

        p.write(json.dumps(res))

    return res

def get_Local_ipv6_address():

    res = os.popen('curl -6 ip.sb')

    return res.read().strip("\n")

if __name__ == '__main__':

    ip = get_Local_ipv6_address()

    info = get_cloud_file_info(ip)

    if ip == info['ipv6']:

        print('nothing to do')

        exit()

    set_cloud_file_d_dns(ip, info['dns_record_id'], info['zone_id'])

添加腳本到定時(shí)任務(wù)(5分鐘執(zhí)行一次)


cru a up_ipv6_ddns "5/* * * * * python {你的腳本路徑}"

#如需要加入開機(jī)啟動創(chuàng)建crontab

echo "cru a up_ipv6_ddns \"5/* * * * * python {你的腳本路徑}\" " > /jffs/scripts/services-start

這樣寻拂,你就可以在有IPV6的情況下程奠,始終通過域名訪問到你的路由器了。

測試域名是否正常解析


ping6 xxx.xxx.com

自動更新防火墻規(guī)則

由于上面所述的原因祭钉,我們并沒有IPV6固定IP瞄沙,所以我們的 IPV6內(nèi)網(wǎng)地址會發(fā)生變化(前4位);導(dǎo)致我們在開啟了防火墻的情況慌核,不能正常的訪問距境。

需要安裝bash


#安裝bash

opkg update && opkg install bash

把下面的規(guī)則模板內(nèi)容存為一個(gè)文件,如 ip6tables.tmpl

ip6tables 規(guī)則模板內(nèi)容


Generated by ip6tables-save v1.4.15 on Wed Feb  3 21:03:42 2021

*mangle

:PREROUTING ACCEPT [45593:41792202]

:INPUT ACCEPT [5649:685720]

:FORWARD ACCEPT [39727:41006577]

:OUTPUT ACCEPT [5721:778530]

:POSTROUTING ACCEPT [45463:41808923]

-A FORWARD -o ppp0 -m hl --hl-gt 30 -m hl --hl-lt 254 -j HL --hl-set 64

-A FORWARD -o ppp0 -m hl --hl-eq 254 -j HL --hl-set 255

COMMIT

# Completed on Wed Feb  3 21:03:42 2021

# Generated by ip6tables-save v1.4.15 on Wed Feb  3 21:03:42 2021

*filter

:INPUT ACCEPT [0:0]

:FORWARD DROP [0:0]

:OUTPUT ACCEPT [5721:778530]

:NSFW - [0:0]

:PControls - [0:0]

:UPNP - [0:0]

:logaccept - [0:0]

:logdrop - [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -i br0 -m state --state NEW -j ACCEPT

-A INPUT -i lo -m state --state NEW -j ACCEPT

-A INPUT -m state --state INVALID -j DROP

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p ipv6-nonxt -m length --length 40 -j ACCEPT

-A INPUT -i br0 -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p udp -m udp --sport 547 --dport 546 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 1 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 2 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 3 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 4 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 129 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 130 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 131 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 132 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 133 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 134 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 141 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 142 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 143 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 148 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 149 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 151 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 152 -j ACCEPT

-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 153 -j ACCEPT

-A INPUT -j DROP

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -i br0 -o ppp0 -j ACCEPT

-A FORWARD -i br0 -o br0 -j ACCEPT

-A FORWARD -m state --state INVALID -j DROP

-A FORWARD -p ipv6-nonxt -m length --length 40 -j ACCEPT

-A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 1 -j ACCEPT

-A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 2 -j ACCEPT

-A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 3 -j ACCEPT

-A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 4 -j ACCEPT

-A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT

-A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 129 -j ACCEPT

-A FORWARD -d {IPV6SUF}::/64 -p tcp -m state --state NEW -m tcp --dport {你需要開放的端口1} -j ACCEPT

-A FORWARD -d {IPV6SUF}::/64 -p tcp -m state --state NEW -m tcp --dport {你需要開放的端口2} -j ACCEPT

-A FORWARD -d {IPV6SUF}::/64 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A FORWARD -d {IPV6SUF}::/64 -p tcp -m state --state NEW -m tcp --dport {你需要開放的端口3} -j ACCEPT

-A FORWARD -j DROP

-A PControls -j ACCEPT

-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options

-A logaccept -j ACCEPT

-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options

-A logdrop -j DROP

COMMIT

# Completed on Wed Feb  3 21:03:42 2021" > /j

自動更新防火墻規(guī)則腳本


#!/bin/bash

# 更新ip6tables 局域網(wǎng)網(wǎng)段防火墻規(guī)則

# 防止因局域網(wǎng)內(nèi)網(wǎng)IP ISP運(yùn)營商給變化后 不能訪問

# create date 2020/02/03

ip6tablesDumpFile="./ip6tables.dump"

ip6addr=$(ifconfig | grep -E -o "\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}::1/64")

while IFS=':' read -ra ADDR; do

  #取前4位

  ip6suf="${ADDR[0]}:${ADDR[1]}:${ADDR[2]}:${ADDR[3]}"

done <<<"$ip6addr"

file="./ip6Suf.ip"

if [ -f $file ]; then

    cacheIpSuf=$(cat $file)

  else

    cacheIpSuf=""

fi

#寫緩存ip

if [ -z $cacheIpSuf ]; then

  echo "$ip6suf" > $file

fi

if [ "$ip6addr" != "$cacheIpSuf::1/64" ]; then

  # 更新

  #替換ip6tables中的局域網(wǎng)段

  ip6tablesRule=$(sed "s/{IPV6SUF}/$ip6suf/g" ./ip6tables.tmpl)

  echo "$ip6tablesRule" >$ip6tablesDumpFile

  #刷新ip6tables

  ip6tables-restore <$ip6tablesDumpFile

  echo "$ip6suf" > $file

  echo "ip6tables rule update succeed"

else

  echo "no thing update"

fi

把腳本存為 up_ip6tables.sh 在命令行輸入以下命令


# 加入開機(jī)創(chuàng)建crontab

echo "cru a up_ip6tables_rule \"*/5 * * * * bash {你的腳本路徑}\"" > /jffs/scripts/services-start

晚安垮卓!第一次發(fā)這么長的技術(shù)文垫桂。有不懂的的地方,歡迎留言粟按。

歡迎關(guān)注我的個(gè)人博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诬滩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子灭将,更是在濱河造成了極大的恐慌疼鸟,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庙曙,死亡現(xiàn)場離奇詭異空镜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門姑裂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馋袜,“玉大人,你說我怎么就攤上這事舶斧⌒辣睿” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵茴厉,是天一觀的道長泽台。 經(jīng)常有香客問我,道長矾缓,這世上最難降的妖魔是什么怀酷? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮嗜闻,結(jié)果婚禮上蜕依,老公的妹妹穿的比我還像新娘。我一直安慰自己琉雳,他們只是感情好样眠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翠肘,像睡著了一般檐束。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上束倍,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天被丧,我揣著相機(jī)與錄音,去河邊找鬼绪妹。 笑死甥桂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喂急。 我是一名探鬼主播格嘁,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼廊移!你這毒婦竟也來了糕簿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狡孔,失蹤者是張志新(化名)和其女友劉穎懂诗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苗膝,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殃恒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片离唐。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡病附,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亥鬓,到底是詐尸還是另有隱情完沪,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布嵌戈,位于F島的核電站覆积,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熟呛。R本人自食惡果不足惜宽档,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庵朝。 院中可真熱鬧吗冤,春花似錦、人聲如沸九府。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昔逗。三九已至,卻和暖如春篷朵,著一層夾襖步出監(jiān)牢的瞬間勾怒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工声旺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笔链,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓腮猖,卻偏偏與公主長得像鉴扫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子澈缺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容