thảo luận Cộng đồng người dùng MikroTik Router

  • Người tạo chủ đề Người tạo chủ đề tuanreb
  • Ngày bắt đầu Ngày bắt đầu
bác nào có script auto update IP puclic lên cloudfare cho mình xin với ạ . Thanks
Thử mấy cái script trên gihub mà không thành công .
 
Mấy cao nhân cho mình hỏi là sao con Mikrotik của mình quay PPPoE rất lâu mới được (tầm hơn 3p), và sau khi quay được rồi (detect INTERNET) thì vẫn không vào mạng được nhỉ? Router thì vừa mới reset, xóa config của hãng sau đó setup như hình ạ:
1694963942591.png
 
Nhờ bạn hữu viết hộ mình đoạn code trong mikrotik cập nhật IP domain trong cache DNS
Mỗi khi phát hiện ra IP của domain đó thay đổi thì cập nhật lại địa chỉ IP mới còn không bỏ qua
Xem tệp đính kèm 2076189
Thím làm cái scheduler cho nó với code sau:
Mã:
local PrivateDNSIP [/ip dns static get [find name=https://xyz.com.vn] address]
local NewPrivateDNSIP [resolve xyz.com.vn]
if ($PrivateDNSIP != $NewPrivateDNSIP) do={
  do { /ip dns static remove [find name=https://xyz.com.vn] } on-error={ }
  /ip dns static add address=$NewPrivateDNSIP name=https://xyz.com.vn
}
 
bác nào có script auto update IP puclic lên cloudfare cho mình xin với ạ . Thanks
Thử mấy cái script trên gihub mà không thành công .
Mã:
:delay 5
:local wanip [/ip address get [/ip address find where interface=pppoe-outXXX] address];
:set wanip [:pick $wanip 0 ([:len $wanip]-3)];
:put $wanip;
/tool fetch http-data="{\"type\":\"A\",\"name\":\"hostname.xxxxxx\",\"content\":\"$wanip\",\"ttl\":60,\"proxied\":false}" url="https://api.cloudflare.com/client/v4/zones/xxxxxx/dns_records/yyyyyy" http-method=put mode=http output=none http-header-field="Authorization: Bearer apikey.xxxxxx, Content-Type: application/json"

#Thay các thông số trước khi chạy https://youtu.be/AfkudWHMmPM
#Thay proxied thành true để bật tính năng proxy của bản ghi A (là cái ẩn IP sau cloudflare)


Như này ok nhé
 
Thím làm cái scheduler cho nó với code sau:
Mã:
local PrivateDNSIP [/ip dns static get [find name=https://xyz.com.vn] address]
local NewPrivateDNSIP [resolve xyz.com.vn]
if ($PrivateDNSIP != $NewPrivateDNSIP) do={
  do { /ip dns static remove [find name=https://xyz.com.vn] } on-error={ }
  /ip dns static add address=$NewPrivateDNSIP name=https://xyz.com.vn
}
Cảm ơn thím nhưng test thấy lỗi không chạy được.
Dòng lệnh đầu tiên lỗi mình có test thử qua terminal nhưng báo lỗi.
Theo mình hiểu dòng đầu tiên là lấy IP của DNS static rồi gán vào PrivateDNSSIP
dòng thứ 2 là lấy NewPrivateDNSIP = IP của domain
Dòng thứ 3 kiểm tra nếu DNS cũ khác DNS domain thì xoá cái DNS cũ đi và gán cái DNS static với IP mới. Mình chỉ không hiểu cái cú pháp của nó thôi và do đó nó lỗi không debug được.
 
Cảm ơn thím nhưng test thấy lỗi không chạy được.
Dòng lệnh đầu tiên lỗi mình có test thử qua terminal nhưng báo lỗi.
Theo mình hiểu dòng đầu tiên là lấy IP của DNS static rồi gán vào PrivateDNSSIP
dòng thứ 2 là lấy NewPrivateDNSIP = IP của domain
Dòng thứ 3 kiểm tra nếu DNS cũ khác DNS domain thì xoá cái DNS cũ đi và gán cái DNS static với IP mới. Mình chỉ không hiểu cái cú pháp của nó thôi và do đó nó lỗi không debug được.
Untitled.jpg

test thử chạy bình thường đó thím
 
Xem tệp đính kèm 2078968
test thử chạy bình thường đó thím
Thím kia muốn update ip cho chính cái domain mà thím ấy dùng DoH đó thím. Nên khi cái domain đó đổi ip thì k phân giải đc DNS nên chạy sẽ lỗi thôi 😅
Nên thím thêm trước khi check ip cái domain static thì chuyển về DNS thường 8.8.8.8 hay nhiêu đó, sau khi kiểm tra ip cái domain đó xong thì tắt DNS thường và bật lại DoH là chuẩn bài 😁
 
Sửa lần cuối:
test thử chạy bình thường đó thím
Mình tìm ra lỗi do copy bị thiếu một dấu name=
Đã chỉnh sửa một chút nhưng vẫn chưa tường minh lắm do không rõ ngôn ngữ lập trình của nó
Vẫn còn một lỗi nếu như chưa có bản ghi DNS static nào đó thì nó không gán tên và IP cho DNS Static. Phải dùng một IP "mồi". Thím thử kiểm tra và sửa hộ cái code dưới giùm cái nhé. Có thể giá trị PrivateDNSIP=null nó lỗi bỏ qua
1695037314680.png


local PrivateDNSIP [/ip dns static get [find name=[URL]https://xyz.com.vn[/URL]] address]
local NewPrivateDNSIP [resolve xyz.com.vn]
if ($PrivateDNSIP != $NewPrivateDNSIP) do={
do { /ip dns static remove [find name=[URL]https://xyz.com.vn[/URL]] } on-error={ }
/ip dns static add address=$NewPrivateDNSIP name=https://xyz.com.vn
:log info "Update: IP updated to $NewPrivateDNSIP!"
}
if ($PrivateDNSIP = $NewPrivateDNSIP) do={
:log info "No Need Update...."}

Code trên đã chạy rồi, báo không cần Update IP hoặc có Update IP mới. CHỉ thiếu nếu như chưa có trong bảng DNS static thì không chạy. Code chưa đẹp vì không rõ cấu trúc If .... else của nó như thế nào.
Câu lệnh sẽ là If PrivateDNSIP <> NewPrivateDNSIP or PrivateDNSIP = null do
....
Thông báo: "UPdate New IP =NewPrivateDNSIP"
else
Thông báo: "No need update"
 
Sửa lần cuối:
Mình tìm ra lỗi do copy bị thiếu một dấu name=
Đã chỉnh sửa một chút nhưng vẫn chưa tường minh lắm do không rõ ngôn ngữ lập trình của nó
Vẫn còn một lỗi nếu như chưa có bản ghi DNS static nào đó thì nó không gán tên và IP cho DNS Static. Phải dùng một IP "mồi". Thím thử kiểm tra và sửa hộ cái code dưới giùm cái nhé. Có thể giá trị PrivateDNSIP=null nó lỗi bỏ qua
Xem tệp đính kèm 2079067

local PrivateDNSIP [/ip dns static get [find name=[URL]https://xyz.com.vn[/URL]] address]
local NewPrivateDNSIP [resolve xyz.com.vn]
if ($PrivateDNSIP != $NewPrivateDNSIP) do={
do { /ip dns static remove [find name=[URL]https://xyz.com.vn[/URL]] } on-error={ }
/ip dns static add address=$NewPrivateDNSIP name=https://xyz.com.vn
:log info "Update: IP updated to $NewPrivateDNSIP!"
}
if ($PrivateDNSIP = $NewPrivateDNSIP) do={
:log info "No Need Update...."}

Code trên đã chạy rồi, báo không cần Update IP hoặc có Update IP mới. CHỉ thiếu nếu như chưa có trong bảng DNS static thì không chạy. Code chưa đẹp vì không rõ cấu trúc If .... else của nó như thế nào.
Câu lệnh sẽ là If PrivateDNSIP <> NewPrivateDNSIP or PrivateDNSIP = null do
....
Thông báo: "UPdate New IP =NewPrivateDNSIP"
else
Thông báo: "No need update"
thím cần một IP mồi thì làm thử như này:
Mã:
if ( [len [ip dns static find name=https://xyz.com.vn]]=0) do={
/ip dns static add address=1.1.1.1 name=https://xyz.com.vn
}

global PrivateDNSIP [/ip dns static get [find name=https://xyz.com.vn] address]

do { global NewPrivateDNSIP [resolve xyz.com.vn] } on-error={ global NewPrivateDNSIP 8.8.8.8}

if ($PrivateDNSIP != $NewPrivateDNSIP) do={
  do { /ip dns static remove [find name=https://xyz.com.vn] } on-error={ }
  /ip dns static add address=$NewPrivateDNSIP name=https://xyz.com.vn
}
 
Hệ thống nhà em là Mikrotik + 1 XDR 6088 + 1 XDR 5480 + 1 WMA301C. Đang để tplink nội địa chạy AP.
Em dùng bấy lâu nay gặp một tình trạng khá khó chịu về mấy con thiết bị thông minh. Nó cứ assigned với deassigned trong log Mikrotik liên tục với mấy con thiết bị thông minh sonoff (TUYA không bị mặc dù e thấy nó cùng chip ESP_XXXXXXX). Và đương nhiên nó cứ mất kết nối...và nhiều khi kết nối nhưng lại không dùng được. Các bác nào có tips dùng tối ưu cho mấy con thông minh này giúp đỡ em với ạ.

-Đã thử tách sóng 2.4ghz trên tplink nội địa, và set hẳn ip cứng lên trong mikrotik cho mấy con thiết bị thông minh rồi nhưng không ăn thua.

e cảm ơn các bác.
 

Tệp đính kèm

  • 378257270_1455328192078677_4628803200701905965_n.png
    378257270_1455328192078677_4628803200701905965_n.png
    20,4 KB · Lượt xem: 65
Hệ thống nhà em là Mikrotik + 1 XDR 6088 + 1 XDR 5480 + 1 WMA301C. Đang để tplink nội địa chạy AP.
Em dùng bấy lâu nay gặp một tình trạng khá khó chịu về mấy con thiết bị thông minh. Nó cứ assigned với deassigned trong log Mikrotik liên tục với mấy con thiết bị thông minh sonoff (TUYA không bị mặc dù e thấy nó cùng chip ESP_XXXXXXX). Và đương nhiên nó cứ mất kết nối...và nhiều khi kết nối nhưng lại không dùng được. Các bác nào có tips dùng tối ưu cho mấy con thông minh này giúp đỡ em với ạ.

-Đã thử tách sóng 2.4ghz trên tplink nội địa, và set hẳn ip cứng lên trong mikrotik cho mấy con thiết bị thông minh rồi nhưng không ăn thua.

e cảm ơn các bác.
Chắc do wifi có vấn đề nên nó làm rớt kết nối wifi, nối lại thì lại liên hệ dhcp lại nên bị thế đó. Bác kiếm con AP khác rồi nối mấy con sonoff thẳng cái AP đó luôn, đừng cho qua mấy con như ở trên xem có bị k
 
Hệ thống nhà em là Mikrotik + 1 XDR 6088 + 1 XDR 5480 + 1 WMA301C. Đang để tplink nội địa chạy AP.
Em dùng bấy lâu nay gặp một tình trạng khá khó chịu về mấy con thiết bị thông minh. Nó cứ assigned với deassigned trong log Mikrotik liên tục với mấy con thiết bị thông minh sonoff (TUYA không bị mặc dù e thấy nó cùng chip ESP_XXXXXXX). Và đương nhiên nó cứ mất kết nối...và nhiều khi kết nối nhưng lại không dùng được. Các bác nào có tips dùng tối ưu cho mấy con thông minh này giúp đỡ em với ạ.

-Đã thử tách sóng 2.4ghz trên tplink nội địa, và set hẳn ip cứng lên trong mikrotik cho mấy con thiết bị thông minh rồi nhưng không ăn thua.

e cảm ơn các bác.
cái trò smart devices đứt rồi sống này đa phần tại mesh, thím thử đặt SSID riêng theo zone và mấy con SONOFF kết nối với 1 SSID chỉ định thôi xem sao.
 
Thím nào xài CHR confirm giúp mình là cái lệnh set mac-address cho interface nó không chạy được cho CHR không nhỉ?
Mình set mà nó k đổi, RouterOS thì đổi bt
 
Các bác cho e hỏi. Sau khi e định tuyến internet của 1 máy và 1 Nas, e kết nối wireguard ở nhà thì không remote được máy và k thể truy cập nas đã được định tuyến trên. Nếu bỏ định tuyến đi thì lại kết nối được.

/interface bridge
add arp=proxy-arp dhcp-snooping=yes igmp-snooping=yes name=BridgeLan
/interface ethernet
set [ find default-name=ether1 ] arp=proxy-arp name=P1-WAN-HTC
set [ find default-name=ether2 ] arp=proxy-arp name=P2-WAN-VNPT
set [ find default-name=ether6 ] arp=proxy-arp name=P6-LAN-7252
/interface wireguard
add listen-port=51820 mtu=1420 name=wireguard1
/interface pppoe-client
add disabled=no interface=P2-WAN-VNPT name=pppoe-out1-vnpt user=aaa
add disabled=no interface=P3-WAN-VIETTEL name=pppoe-out2-viettel user=bbb
/routing table
add disabled=no fib name=Out-VNPT
add disabled=no fib name=Out-VIETTEL
/interface bridge port
add bridge=BridgeLan interface=P6-LAN-7252
/interface wireguard peers
add allowed-address=10.0.0.2/24 interface=wireguard1 public-key="aaaa"
/ip address
add address=10.2.7.252/24 interface=BridgeLan network=10.2.7.0
add address=10.0.0.1/24 interface=wireguard1 network=10.0.0.0
/ip firewall address-list
add address=10.2.7.124 comment=Admin list=02_Viettel
add address=10.2.7.20 comment=Nas20 list=02_VNPT
/ip firewall mangle
add action=mark-routing chain=prerouting comment="Dinh tuyen di VNPT" new-routing-mark=Out-VNPT passthrough=yes src-address-list=02_VNPT
add action=mark-routing chain=prerouting comment="Dinh tuyen di Viettel" log=yes new-routing-mark=Out-VIETTEL passthrough=yes src-address-list=02_Viettel
/ip firewall nat
add action=masquerade chain=srcnat out-interface=pppoe-out1-vnpt
add action=masquerade chain=srcnat out-interface=pppoe-out2-viettel
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1-vnpt pref-src="" routing-table=Out-VNPT scope=10 suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out2-viettel pref-src="" routing-table=Out-VIETTEL scope=10 suppress-hw-offload=no target-scope=10
 
Chắc do wifi có vấn đề nên nó làm rớt kết nối wifi, nối lại thì lại liên hệ dhcp lại nên bị thế đó. Bác kiếm con AP khác rồi nối mấy con sonoff thẳng cái AP đó luôn, đừng cho qua mấy con như ở trên xem có bị k
Vâng cái này tối về e thử lun :( chứ dùng ức chế kinh.
 

Thống kê chủ đề

Ngày tạo
tuanreb,
Người trả lời cuối
quangtiens,
Trả lời
21.117
Lượt xem
2.520.967
Quay lại
Lên đầu trang