簡單粗暴的iptables命令說明和windows下telnet驗證

    先說一個場景,我由於在開發環境中須要鏈接linux服務器的memcache服務,但服務器確定是開了iptables的,因此直接連確定是連不上。但我自己有服務器的root帳號密碼,因此能登陸服務器而且有權限。如今我面臨一個問題,我直接使用命令把iptables所有關掉我以爲很危險,由於服務器上畢竟仍是有項目在跑。而我如今的開發環境是用的普通寬帶,ip是不固定的,因此個人問題來了,修改服務器的iptables配置,讓我本機能連上,但不須要永久連上,不用了還能夠刪掉,並且還須要能簡單的測試下配置是否生效,本機肯定能連上。說完場景,咱們開始:linux

一、知道本機的外網IP

    我通常經常使用的辦法是直接登陸www.ip138.com網站,首頁就能顯示IPwindows

    也有對李彥宏有愛的,直接在百度裏面輸入「個人IP」,也同樣能查到bash

二、到linux服務器上修改防火牆(iptables)

在服務器上直接執行命令服務器

iptables -nvL

就能看到iptables目前的狀況,大概樣子以下:網絡

原理我就不講了,假設服務器上memcache服務的端口是默認的11211,咱們本機的外網IP地址是123.119.110.11,那麼讓iptables容許咱們訪問的命令以下:tcp

iptables -A INPUT -s 123.119.110.11 -ptcp --dport 11211 -j ACCEPT

簡單說下參數的意義:測試

-A 表示我這個規則是跟在上圖這一堆的防火牆規則後面的,排隊尾,若是以爲我這條規則要插隊,排第一,用 -I,可是不少時候你的規則排隊尾很容易被前面的規則擋掉,若是是臨時性的,我都是用-I 直接插到第一位。網站

INPUT 表示是我要訪問服務器,我是要進去(input)服務器的spa

-s 這個猜都能猜到,表示後面的ip是要訪問服務器的ip,就是如今場景下我本機的ip命令行

-p 表示我打算用什麼協議訪問服務器,最經常使用的用tcp就好了

-d 又是一個好猜到的,我要訪問服務器的那個端口,我須要訪問的是11211,若是是訪問頁面,用80的多

-j 表示這條規則是打算容許訪問仍是拒絕訪問,容許用ACCEPT,拒絕用REJECT,還一個選項是DROP,這個參數就像被女神當備胎,它不拒絕你,可是也不接納你,它晾着你,等你自個以爲沒回應而本身退出。

-----------------------------------------我是已經勾搭完了的分割線----------------------------------------

看完上面,咱們就能訪問服務器的指定端口了,可是若是我配錯了咋辦,我用完了須要刪除這個規則咋辦,下面是過後煙的說明時間:

先要查下咱們的這條規則是什麼編號,用這個命令

iptables --line -vnL

看到的界面以下:

前面的num就是--line 參數弄出來的,咱們須要看到咱們本身的規則是哪一個num,好比咱們的命令num是1,執行這個命令:

iptables -D INPUT 1

這個參數就簡單多了,-D 就是刪除這條規則,1就是規則的num,完事。

三、windows下的驗證

弄完後咱們還須要驗證本地機器是否真的能夠訪問了,這時候我用的是telnet,原本呢它爲用戶提供了在本地計算機上完成遠程主機工做的能力的,但就像百度的主要工做是爲了驗證網絡通不通,telnet不少時候也是爲了驗證一個遠程服務是否是通,下面咱們用下telnet。

但默認咱們是用不了,咱們用win+r呼出運行框,輸入cmd打開命令框,輸入telnet命令是沒啥用的,提示這個命令不存在。

咱們須要把telnet命令啓動起來才行,跟着我作(提醒一下,我用的是win10)。打開設置->應用

打開相關設置的程序和功能

打開啓動或關閉windows功能

勾選裏面的telnet client便可

再回到命令行,輸入telnet,能夠用啦。

但咱們不是爲了登陸telnet搞事情,咱們是爲了驗證遠程服務器能不能訪問,我知道你手腳快,已經進去了telnet,按q退出telnet。咱們要執行的是下面這行命令

telnet 111.222.11.11 11211

這個111.222.11.11就是遠程服務器ip,11211就是端口號,執行後若是不能訪問,就會顯示失敗:

    若是成功了,會這個樣子

到此爲止,整個的過程就結束了,就能開心的連上服務器了,若是是臨時性的,記得最後刪掉那條規則哦。

相關文章
相關標籤/搜索