1. 程式人生 > >linux ipv6臨時地址

linux ipv6臨時地址

在Ubuntu系統上想要通過ipv6來上網,結果發現通過DHCP獲取到了ipv6地址卻無法連線外網。

ping6 ipv6.google.com

資料包有去無回,100% loss 。

奇怪的是通過DSL PPPoE撥號連線顯示兩個global的ip:

ifconfig ppp0

  inet6 地址: 2001:250:1006:dff0:4913:2aa5:8075:7c01/64 Scope:Global
  inet6 地址: 2001:250:1006:dff0:99b1:935b:57a5:9b10/64 Scope:Global
  inet6 地址: fe80::99b1:935b:57a5:9b10/10 Scope:Link

通過traceroute6發現數據包從尾號為7c01的那個地址發出的(記為地址A),通過查詢學校的計費認證伺服器的web頁面看到實際分配給我的ip只有那個尾號為9b10的地址(地址B)。

第一次遇到這種情況,很不理解。於是想將地址A直接幹掉,把它遮蔽或刪掉。於是搜尋刪除已獲取ip的方法,發現ip命令的del引數可以:

ip -6 addr show ppp0  #顯示出指定介面的ipv6
ip -6 addr del 地址A dev ppp0 #或者使用 ifconfig 介面 inet6 del v6地址 

將地址A刪掉後可以成功上ipv6的網站了,可是高興了沒幾分鐘又上不了了,地址又回來了。

注意到ip show顯示的地址A是scope global temporary dynamic的,居然是個臨時地址。

繼續搜尋什麼是臨時地址以及為什麼要使用臨時地址。。。

大概意思是不想固定一個裝置的ip,防止被追蹤定位,為了隱私考慮。因為使用ipv6地址無需像ipv4一樣使用NAT公用一個ip,裝置間連線更容易,但容易造成隱私洩漏。為此作業系統可以選用多個臨時ip,每個ip有固定的生命週期。ipv6自動配置時使用你的MAC地址來選擇一個ip地址,這樣其它裝置根據你的ip地址可能會算出你的mac地址(全球唯一)。

這確實是不錯的做法,現在的疑問就是這些臨時ip的生成和使用機制是什麼以及我現在為什麼不能用它來上網?

只瞭解到臨時地址的作用是在使用者對外發起連線的時候充當連線發起的IPv6地址,這一行為的目的在於保證主機在對外通訊 時候的匿名性。這個地址是由路由字首和由主機隨機生成的介面標識組成的。這個地址是有有效期限制的,幾個小時或者幾天,在期間,系統一直以這個地址為主機 地址向外發出連線和請求。每一個時刻只有一個臨時地址是有效的,在一個地址過期時會立刻生成一個新的地址作為新的臨時地址。已經過期的地址不會立即被刪除,它會儲存幾個小時或者幾天,此時過期的臨時地址不能對外發起連線,但是可以接受外部發來的之前請求的資訊。下面網站上指出在 RFC 3041 中描述了一種備用的 IPv6 介面標識,它是隨機生成的,並且隨時間變化而變化。

至於為什麼在我電腦上使用臨時地址無法連線還不得知,,,

當務之急是把臨時ip給取消掉,本來獲取到的ip就是動態的,也無需這麼注重隱私,況且現在大多數伺服器都是用靜態ip啊。

原來ubuntu的多個版本都是如下(linux核心引數,可使用cat、echo來檢視修改/proc/sys):

sudo sysctl -a | grep tempaddr
    net.ipv6.conf.all.use_tempaddr = 2
    net.ipv6.conf.default.use_tempaddr = 2
    net.ipv6.conf.eth0.use_tempaddr = 2
    net.ipv6.conf.lo.use_tempaddr = 2

值為2表示系統打開了該選項並且在建立連線時優先使用臨時地址。

只需改為0並重啟即可(重啟網路),
執行sudo sysctl net.ipv6.conf.ppp0.use_tempaddr=0 可以臨時改變ppp0介面的use_tempaddr的值。
然而在執行下列命令時又被重置為2。

  sudo /etc/init.d/networking restart #手動配置的網路
  sudo pkill NetworkManager ; sudo NetworkManager #NetworkManager託管的 )
一勞永逸的方式為
嘗試將net.ipv6.conf.all.use_tempaddr=0寫入/etc/sysctl.conf
sysctl -p #讀取sysctl.conf使新設定生效,但並不載入sysctl.d目錄中的檔案
sysctl --system #載入所有的配置檔案,像/etc/sysctl.d/*等
重啟之後發現不再產生臨時地址了,過了幾個月,在我升級核心之後發現上述做法不可行了。
發現/etc/sysctl.d這個目錄下有個10-ipv6-privacy.conf 內容如下:
# IPv6 Privacy Extensions (RFC 4941)
# ---
# IPv6 typically uses a device's MAC address when choosing an IPv6 address
# to use in autoconfiguration. Privacy extensions allow using a randomly
# generated IPv6 address, which increases privacy.
#
# Acceptable values:
# 0 - don’t use privacy extensions.
# 1 - generate privacy addresses
# 2 - prefer privacy addresses and use them over the normal addresses.
net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2
將net.ipv6.conf.default.use_tempaddr改為0後
執行sysctl --system重新撥號連線,就不再有臨時地址了。

不清楚all與default的區別,似乎是all的設定會被特定介面的設定覆蓋,default的值在核心啟動時設定。

conf/default/*

Change the interface-specific default settings.

conf/all/*

Change all the interface-specific settings.

Exception: conf/all/forwarding has a different meaning here

(設定ipv6轉發的all.forwarding引數有點特殊,如果設為0則全域性禁止了資料包轉發,你不能為每個裝置介面設定不同的轉發開關。這跟ipv4不同。)


2. pppoeconf 撥號+ipv6設定
使用命令列工具pppoeconf管理網路

使用者名稱(username)與密碼(password)儲存在/etc/ppp/chap-secrets檔案中。
生成的配置檔案會存放於/etc/ppp/peers目錄下, 並且會改動/etc/network/interfaces;

檢視手冊$man pppd 可以看到有這麼一行:

+ipv6 Enable the IPv6CP and IPv6 protocols.

若打算啟用IPv6,需要新增+ipv6/etc/ppp/peers/<file name>

如果開啟了IPv6核心轉發,會獲取不到IPv6地址,這與Router Advertisements這個術語有關,相關配置是accept_ra

編輯 /etc/sysctl.conf

net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.use_tempaddr=0
net.ipv6.conf.all.use_tempaddr=0

相關推薦

linux ipv6臨時地址

在Ubuntu系統上想要通過ipv6來上網,結果發現通過DHCP獲取到了ipv6地址卻無法連線外網。 ping6 ipv6.google.com 資料包有去無回,100% loss 。 奇怪的是通過DSL PPPoE撥號連線顯示兩個global的ip: ifconfig ppp0  

本地win7ping VM linux ipv6地址問題

鏈接 inet6 sco 就是 本地 AS ID ipv6地址 系統 前述 在windows和linux同時安裝ipv6之後,系統將會自動分配一個link-local(鏈接本地)地址也就是ifconfig -a看到的一行【inet6 addr: fe80::20c:29f

linux 內存地址空間管理 mm_struct

clone mod ppr head actual rom __user 虛擬 tom http://blog.csdn.net/yusiguyuan/article/details/39520933 Linux對於內存的管理涉及到非常多的方面,這篇文章首先從對進程虛擬地址

LINUX系統 下載地址 LINUX鏡像站 Centos ubuntu

.com 技術 搜狐 logs cnblogs ubunt image 阿裏雲 ima 1.網易開源鏡像地址 http://mirrors.163.com/ 2. 阿裏雲 LINUX鏡像站 http://mirrors.aliyun.com/ 3.搜狐鏡像站 http:

Linux下IP地址配置

linux本次實驗操作環境為Centos6.9。1.圖形化頁面配置進入圖形化頁面,右鍵單擊頁面欄的網卡圖標,選擇Edit connections。選擇網卡>Edit>Ipv4 Setting,在Method裏選擇獲取IP的方式。其中Manual為手工指定。然後在Addresses下欄內添加或修改各

Linux驅動虛擬地址和物理地址的映射

沒有 映射 跟著 申請 不能 物理地址 技術 存在 ngs 一般情況下,Linux系統中,進程的4GB內存空間被劃分成為兩個部分------用戶空間和內核空間,大小分別為0~3G,3~4G。 用戶進程通常情況下,只能訪問用戶空間的虛擬地址,不能訪問到內核空間。 每個

重新設置Linux的IP地址

1-1 ip地址 配置 編輯 技術 linu 地址 str es2017 1、查看你當前的IP地址 2、進入配置文件進行更改IP地址 3、上圖我使用的是ifcfg-rth1 ,然後進行更改這個文件 4、點擊 insert 進行編輯改文檔,吧對應的IP改成你想要的地址

linux配置ip地址、多網卡綁定、單網卡多個ip

systemctl one ipa 單網卡 狀態 inux down 主機名 device 1.ifconfig命令臨時配置ip地址 ifconfig命令:查看和配置網路狀態命令 ifconfig ens32 192.168.200.200/24 #臨時設置ens32網卡的

1.6 linux配置IP地址

1.安裝登錄從CentOS71.dhclient 自動獲取IP地址 ip add 查看IP地址 inet 為自動獲取的IP2.vmwere 菜單欄的 編輯 虛擬網絡編輯器 NAT模式 子網地址 NAT設置查看網關3.設置靜態IP ls /etc/sysconfig/network-scripts/ifcfg

Linux更改IP地址

地址 想要 p地址 root用戶 gpo service ifconfig 防火墻 root 1、進入到root用戶 2、執行命令:ifconfig 查看本機的名稱 3、執行命令:ifconfig eth0 192.168.25.128 netmask 255.255.25

Linux 獲取 MAC 地址並去除 : 字符

字符 去除 linu span onf ifconf mac eth grep ifconfig -a | grep eth0 | awk -F ' ' '{print $5}' | sed 's/://g'Linux

Linux應用程序地址布局

字符串常量 -s inux 應用 區域 都是 變量 ons 布局 Linux應用程序內存布局 1.從低地址到高地址分別為:代碼段、數據段、BSS段、堆、棧(BSS,Block Started by Symbol,又名:未初始化數據段) 2.堆向高內存地址生長 3.棧向低內

contso7配置靜態IP,Linux固定IP地址

不使用網路管理配置靜態IP地址 進入目錄 cd /etc/sysconfig/network-scripts 修改以下配置(後邊有引數講解) 輸入ifconfig檢視IP資訊,裡面有IPADDR和NETMASK ifconfig   點開VMware-虛擬網

Linux靜態IP地址

如何在虛擬機器裡分配靜態IP地址(永久IP) 並讓兩臺虛擬機器相互ping通 1、首先到網絡卡的配置檔案所在的位置 2、編輯eth0的配置檔案 將改為下圖所示(其中,HWADDR是網絡卡MAC地址,獨一無二;UUID一行直接刪除;ONBOOT改為yes;BOOTTPROTO

linux系統虛擬地址 實體地址 匯流排地址

在linux核心書籍中,介紹記憶體管理的部分,頻繁出現三個概念,實體地址、虛擬地址、匯流排地址 他們區別如下: 實體地址:MMU看到的記憶體的地址 虛擬地址:cpu,程式設計師操作的地址 匯流排地址:裝置看到的地址 struct pci_device_id結構體用於定義該驅動程式支援的

Linux中ip地址結構和ip地址的轉換

class \n image nbsp toa shel string linux .com ip地址結構 struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET *

Nginx 的 安裝、基本使用方法 和 Linux 版本下載地址

1.到官網下載穩定的版本 Nginx 官網 : nginx.org/en/download.html  圖中 標紅 1. 是新版 ,標紅2. 是穩定版 下面是歷史版本 我下載的 是 畫紅圈的 nginx/Windows-1.14.2 穩定版本 2.解壓安裝

檢視並設定Linux的IP地址

 1)ip addr         檢視ip   2)cd /etc/sysconfig/network-scripts  調轉目錄   3)ls或ll         &nbs

深入理解 Linux 核心---程序地址空間

講述: 程序是怎樣看待動態記憶體的。 程序空間的基本組成。 缺頁異常處理程式在推遲給程序分配頁框中所起的作用。 核心怎樣建立和刪除程序的整個地址空間。 與程序的地址空間管理有關的 API 和系統呼叫。 程序的地址空間 程序的地址空間由允許程序使用的全部線性地址組成。 每個程序看到

修改linux系統ip地址

將centos虛擬機器聯網方式設定為橋接,輸入ip addr檢視網絡卡資訊: [[email protected] ~]# ip addr 1: lo: <LOOPBACK,UP,LOW