經過長達近一個星期的折騰,Open***客戶端終於可以和Server內網的客戶端進行通信,其中防火牆佔用了大部分時間,主要還是不太熟悉Iptables的各種設置方式以及規則(對CentOS7的Firewalld更熟悉),簡單寫一下Server配置文件以及客戶端的配置文件,重點是防火牆!同時感謝 https://wanglu.info/1306.html 這篇文章的作者配置,成功連通了內網。
硬件:Linksys WRT-1900ACS V2
系統:LEDE 17.01.4
本人是想在自己路由器上搭建一個Open***服務,用來隨時訪問自己的一些資料,之前有在CentOS7系統及Firewalld.service防火牆下成功搭建過,結果在Openwrt的Iptables栽了很大的跟頭,並且主要問題就是自己iptables的防火牆不熟,導致簡單的問題查找起來很傷腦筋- -!。
原作者使用的是udp的方式,本人使用的是tcp方式,因爲公司寬帶很不給力(長寬企業用戶,無公網ip),udp方式出不去,所以切換成tcp方式 ,經過測試,如果用udp連接的話請按照原作者的方法可以實現
Server的配置 配置文件在/etc/config/open***
config open*** 'home'
option dev 'tun'
option comp_lzo 'yes'
option keepalive '10 60'
option verb '3'
option server '10.8.0.0 255.255.255.0'
option client_to_client '1'
option port '1194'
option dev_type 'tun'
option proto 'tcp'
option ca '/etc/easy-rsa/keys/ca.crt'
option dh '/etc/easy-rsa/keys/dh2048.pem'
option cert '/etc/easy-rsa/keys/server.crt'
option key '/etc/easy-rsa/keys/server.key'
option enabled '1'
list push 'redirect-gateway def1'
list route "10.8.0.0 255.255.255.0"
#option topology subnet
原作者加了topology subnet ,經過本人測試不加該參數也能夠正常使用,不過list push 'redirect-gateway def1' 這個參數如果不加的話,經測試是無法ping通內網,該命令是爲了將所有流量通過***網絡進行傳輸。
Client端的配置
client
dev tun
proto tcp
remote taoyeno1.oicp.net 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\Open***\\config\\ca.crt"
cert "C:\\Program Files\\Open***\\config\\taoye.crt"
key "C:\\Program Files\\Open***\\config\\taoye.key"
ns-cert-type server
#tls-auth ta.key 1
comp-lzo
verb 3
auth-nocache
配置完成後如果防火牆不做配置的話,內網的網關是可以ping通的,但內網的客戶端是無法ping通的,而且會提示“來自 10.8.0.1 的回覆: 無法連到端口。”的提示。
經過測試,原文作者的文章配置是可以成功ping通內網的,而且可以更簡單
直接在/etc/firewall.user下面添加四條規則即可
iptables -I INPUT -i tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT
即允許外部的流量訪問tun網卡,以及允許tun往外訪問流量。
每個人的Openwrt配置都不太相同,本人加了這四條命令即可從***客戶端訪問內網的服務器了,原作者的防火牆規則以及iptables -A nat 均沒有添加即可訪問,所以還是需要根據情況具體對待。
原創作者地址:https://wanglu.info/1306.html 感謝原作者的辛勤付出!