Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server IP's dont get added to ip list #1

Open
LiquidBoosts opened this issue Jan 4, 2025 · 5 comments
Open

Server IP's dont get added to ip list #1

LiquidBoosts opened this issue Jan 4, 2025 · 5 comments

Comments

@LiquidBoosts
Copy link

I have dynamic mode on and a custom circle around most of the united states along with the 3 ip's provided for call of duty whitelisted. I go into a BO6 multiplayer match, sometimes itll show a green checkmark on the map when I connect but even that is super spotty to work. Once I get connected to multiple gmes i check the server list for the section i have created and there is nothing added to it.

@hudra0
Copy link
Owner

hudra0 commented Jan 4, 2025

  1. Have you thoroughly read the README?
  2. Did you wait long enough? In dynamic mode, an nftables set is created to collect the IPs that establish connections over the ports defined by the respective geofilter. Every 30 minutes, the IPs from the nftables set are written to the TXT file (if not already present). This means you may simply not have waited long enough yet. At this stage, the IPs are in the TXT file, but they are only displayed on the map and blocked (if outside the defined circle) after they have been geolocated. This geolocation process happens later, approximately every 30–60 minutes (in dynamic mode) if new IPs are detected. For the new IPs, geocoordinates are fetched using ip-api.com and stored in a JSON file in the geomate.d folder. Only then will the IP appear on the map and be blocked or allowed (depending on whether you have strict mode enabled).

To ensure that there is no misconfiguration or a potential bug, I would like to see the following outputs from your system:

ubus call system board

service geomate status

ls -l /etc/geomate.d/

ls -l /etc/geomate.d/runtime/

cat /etc/config/geomate

@LiquidBoosts
Copy link
Author

LiquidBoosts commented Jan 5, 2025

Today the ip's did start to populate in the file although it still is very spotty when showing servers on the map i have like at least 50 servers in the list right now but ive seen max 4 servers on the map. I dont know if this is as intended but if so, i think it would be nice to have all the servers show on the map along with possibly the ping to that server or something.

  1. ubus call system board
{
        "kernel": "6.6.63",
        "hostname": "GL-MT6000",
        "system": "ARMv8 Processor rev 4",
        "model": "GL.iNet GL-MT6000",
        "board_name": "glinet,gl-mt6000",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0-rc2",
                "revision": "r28161-ea17e958b9",
                "target": "mediatek/filogic",
                "description": "OpenWrt 24.10.0-rc2 r28161-ea17e958b9",
                "builddate": "1733226068"
        }
}
  1. service geomate status
running
  1. ls -l /etc/geomate.d/
-rw-r--r--    1 root     root        671038 Jan  4 01:09 Call of Duty_geo_data.json
-rw-r--r--    1 root     root         50714 Jan  4 00:19 Fortnite_geo_data.json
-rw-r--r--    1 root     root        151970 Jan  4 19:00 New Zeland COD_geo_data.json
-rw-r--r--    1 root     root             0 Jan  4 00:26 cod_salem_servers.txt
-rw-r--r--    1 root     root        100658 Jan  4 00:13 cod_servers.txt
-rw-r--r--    1 root     root          2272 Jan  4 00:13 fortnite_servers.txt
-rw-r--r--    1 root     root          7090 Jan  4 18:59 new_zeland_cod_servers.txt
-rw-r--r--    1 root     root             0 Jan  4 11:15 new_zeland_servers.txt
drwxr-xr-x    2 root     root          3488 Jan  4 19:00 runtime
-rw-r--r--    1 root     root        133299 Jan  4 14:21 usa_geo_data.json
-rw-r--r--    1 root     root          6202 Jan  4 14:21 usa_servers.txt
  1. ls -l /etc/geomate.d/runtime/
-rw-r--r--    1 root     root        100658 Jan  4 00:57 Call of Duty_last_processed
-rw-r--r--    1 root     root          7090 Jan  4 19:00 New Zeland COD_last_processed
-rw-r--r--    1 root     root            11 Jan  4 19:00 last_geolocate_run
-rw-r--r--    1 root     root            11 Jan  4 00:51 last_geolocate_run.daily
-rw-r--r--    1 root     root             5 Jan  4 19:00 last_geolocate_run.interval
-rw-r--r--    1 root     root             0 Jan  4 19:00 new_ips.txt
-rw-r--r--    1 root     root          6202 Jan  4 14:21 usa_last_processed
  1. cat /etc/config/geomate
config global 'global'
        option enabled '1'
        option debug_level '2'
        option strict_mode '0'
        option operational_mode 'dynamic'
        option geolocation_mode 'frequent'

config settings 'settings'
        option interface 'br-lan'

config geo_filter
        option name 'Call of Duty'
        option protocol 'udp'
        option src_ip '192.168.8.231'
        option src_port '3074'
        option ip_list '/etc/geomate.d/cod_servers.txt'
        option enabled '0'
        list allowed_ip '185.34.107.128'
        list allowed_ip '185.34.107.129'
        list allowed_ip '185.216.14.7'
        list allowed_region 'circle:53.826597:-0.922852:636905'

config geo_filter
        option name 'usa'
        list allowed_region 'circle:41.24477234:-106.25976563:1569638'
        option enabled '0'
        option protocol 'udp'
        option src_ip '192.168.8.231'
        option src_port '3074'
        list allowed_ip '185.34.107.128'
        list allowed_ip '185.34.107.129'
        list allowed_ip '185.216.14.7'
        option ip_list '/etc/geomate.d/usa_servers.txt'

config geo_filter
        option name 'New Zeland COD'
        list allowed_region 'circle:-40.97989807:172.61718750:978670'
        option enabled '1'
        option protocol 'udp'
        option src_ip '192.168.8.231'
        option src_port '3074'
        list allowed_ip '185.34.107.128'
        list allowed_ip '185.34.107.129'
        list allowed_ip '185.216.14.7'
        option ip_list '/etc/geomate.d/new_zeland_cod_servers.txt'

@hudra0
Copy link
Owner

hudra0 commented Jan 5, 2025

If your IP list is filling up, then there isn’t any error.

However, your setup suggests that you either didn’t read the README properly or misunderstood it (if you have any suggestions for improvement, I’d appreciate your feedback).

Having just 50 IPs is nothing. For comparison, my COD servers list contains nearly 7,000 IPs. I’m not even sure I have all of them... most of them, yes, but certainly not all. If we assume there are approximately 8,000 IPs for COD, your list has less than 1% of all servers. Naturally, not all servers will be displayed, especially if you have strict mode disabled. With strict mode off, connections to untracked IPs are allowed. Every time you start a new multiplayer or Warzone match, you’re playing on a different server, which also has a unique IP.

When you install Geomate, it comes with a preconfigured cod_servers.txt file and a predefined geofilter that contains a reasonably complete list of Call of Duty IPs. For some reason, this geofilter is disabled in your setup, and you’ve created your own geofilters for the USA and New Zealand. This makes no sense. As a result, you have an empty IP list that needs to be "trained/learned" over time. Depending on how often you play, this could take weeks or even months. Instead, just use the provided list. If you simply want to create multiple circles (regions) for a single geofilter, I recommend reading the README, which has a dedicated section for this.

If I were you, I would start fresh by doing the following:

  1. Delete the "USA" and "New Zealand COD" geofilters.

  2. Delete the entire geomate.d folder: rm -rf /etc/geomate.d

  3. Reinstall the backend (step 1 of the installation instructions in the README). This will recreate the geomate.d folder and download the COD IP list.

  4. Make sure the default "Call of Duty" geofilter is enabled. Additionally enable strict mode.

  5. Either click on "Run Manual Geolocation" in the UI under the "Geofilters" section or run the following command in the terminal: /etc/geolocate.sh

This will geolocate the newly downloaded IP list (this process may take up to 10 minutes). Afterward, you should find a file named Call of Duty_geo_data.json in the geomate.d folder. This file should be approximately 2 MB in size.

  1. Once completed, you should see all connections displayed on the map.

@hudra0
Copy link
Owner

hudra0 commented Jan 9, 2025

Just for completeness: Even though your setup with three identical geo-filters for a single game is not optimal, there were still some UI bugs:

I did some further testing and found a few UI bugs where IPs were not displayed correctly on the map. The backend did handle everything correct.

The issue mainly occurred when multiple geo-filters were active at the same time.

Additionally, the problem arose when multiple geo-filters had the same source IP and port combination.

These bugs should now be fixed, so I would ask you to reinstall and test again.

@LiquidBoosts
Copy link
Author

LiquidBoosts commented Jan 9, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants