問題
在實際網絡搭建過程中,大家有可能會遇到在局域網范圍內,在自己本機上搭建一個網站或者應用時,其他設備通過本機的IP地址無法訪問的問題,這個問題可以通過設置IP映射來解決,但是通過netsh interface命令設置的IP映射,在機器重啟后會失效,本博客主要講述從各個方面更有效解決這個問題的一種方法。
方法
設置白名單
對于很多網站或者應用而言,特別安全等級要求略高的網站或者應用,都會要求設置遠程訪問的白名單,如果你在本地搭建的網站或者應用有類似的安全設置,此時則需要將本地局域網的IP地址在對應網站或者應用進行設置。下面以本地搭建NextCloud云盤為例:
<?php
$CONFIG = array ('instanceid' => '************','passwordsalt' => '************','secret' => '************','trusted_domains' =>array (0 => 'localhost',1 => '192.168.0.245',),'datadirectory' => '/var/www/html/nextcloud/data','dbtype' => 'mysql','version' => '************','overwrite.cli.url' => '************','dbname' => 'nextcloud','dbhost' => '************','dbport' => '','dbtableprefix' => 'oc_','dbuser' => '************','dbpassword' => '************','mysql.utf8mb4' => true,'installed' => true,
);
設置防火墻的入站規則
通過"Win+R"快捷鍵打開 “運行”,輸入“control”命令,打開控制面板
點擊“Windows Defender 防火墻”
點擊“高級設置”打開 高級安全 Windows Defender防火墻
點擊“入站規則”,點擊右側的“新建規則”
選擇“端口”
開放 80,443端口
余下的步驟,一直點擊“下一頁”,最后添加“規則名稱”即可,最后點擊“完成”。
設置IP映射并每次登錄后生效
編寫批處理腳本
@echo off
cd /d %~dp0
netsh interface portproxy delete v4tov4 listenport={監聽端口} listenaddress={本地IP地址}
netsh interface portproxy add v4tov4 listenport={監聽端口} listenaddress={本地IP地址} connectport=80 connectaddress=127.0.0.1
命名為xxxx.bat,并放置在本機指定的目錄。
設置開機啟動計劃任務
通過"Win+R"快捷鍵打開 “運行”,輸入“taskschd.msc”命令,打開任務計劃程序
點擊右側面板"創建任務"按鈕打開創建任務界面
設置“名稱”,以及選中“只在用戶登錄時運行”和“使用最高權限運行”。
點擊"觸發器"Tab頁,點擊觸發器頁左下角的“新建”,設置登錄時觸發
點擊"操作"Tab頁,點擊操作頁左下角的“新建”,設置之前編寫的批處理腳本文件
最后點擊“確定”即可完成設置。
總結
上述方法并非最好的辦法,但是該方法不用關閉防火墻,360安全衛士、360殺毒不會報警,至少對于我個人而言,現階段是一個最好的解決辦法,如果大家有更好的解決辦法,請給我留言,謝謝!