WireGuard su Ubuntu: come vedere IP assegnato e stampare la configurazione (wg showconf, ip a)

Immagine rappresentativa dell'articolo concernente wireguard e ubuntu

Se hai seguito la guida per gestire WireGuard su Ubuntu con un’icona in tray tramite Python, probabilmente a questo punto ti starai chiedendo:

  • Che IP mi ha assegnato la VPN?
  • Come faccio a vedere la configurazione attiva di WireGuard?
  • Come stampo il file .conf che sto usando?

In questo articolo vediamo i comandi più utili (e più rapidi) per controllare tutto dal terminale, senza impazzire.

Tutti i comandi qui sotto funzionano su Ubuntu e derivati (Debian, Mint, ecc.).
In alcuni casi è richiesto sudo.

Come vedere l’IP che ti ha assegnato WireGuard

Quando WireGuard è attivo, crea un’interfaccia di rete virtuale (di solito chiamata wg0).

Per vedere tutte le interfacce e trovare quella WireGuard:

ip a

Cerca una sezione simile a questa:

3: wg0: <POINTOPOINT,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default
    inet 10.7.0.2/24 scope global wg0
       valid_lft forever preferred_lft forever

In questo esempio, l’IP assegnato dalla VPN è:

10.7.0.2

Stampare solo l’IP della VPN (senza “rumore”)

Se vuoi vedere direttamente l’IP IPv4 associato a wg0:

ip -4 addr show dev wg0

Se invece vuoi solo l’indirizzo pulito (utile anche per script):

ip -4 addr show dev wg0 | grep -oP 'inet \K[\d.]+'

Esempio output:

10.7.0.2

Come stampare la configurazione WireGuard

Ci sono due “tipi” di configurazione che puoi voler vedere:

  1. Il file di configurazione (wg0.conf)
  2. La configurazione attiva (runtime), cioè quella realmente caricata e in uso

Vediamole entrambe.

1) Stampare il file .conf (quello che hai configurato)

Di solito i file WireGuard si trovano in:

/etc/wireguard/

E il file classico è:

/etc/wireguard/wg0.conf

Per stamparlo:

sudo cat /etc/wireguard/wg0.conf

Se vuoi una stampa più leggibile con i numeri di riga:

sudo nl -ba /etc/wireguard/wg0.conf

Questo è comodo quando devi copiare/incollare righe specifiche o confrontare config.

2) Stampare la configurazione attiva (quella realmente in uso)

Questa è la parte più utile quando vuoi fare debug o capire se la VPN è davvero connessa.

Config attiva in formato “conf”

sudo wg showconf wg0

Questo comando ti stampa una versione “ricostruita” della configurazione attiva dell’interfaccia.

Stato completo dell’interfaccia (debug)

sudo wg show wg0

Qui vedrai:

  • public key
  • endpoint (IP:porta del server)
  • allowed IPs
  • handshake recente
  • transfer (rx/tx)

Esempio tipico:

  • se handshake è recente, sei connesso
  • se transfer aumenta, il traffico sta passando

Vedere tutte le interfacce WireGuard attive

Se non sei sicuro del nome (wg0, wg1, ecc.):

sudo wg show

Nota importante: IP VPN vs IP pubblico

Qui spesso ci si confonde, quindi vale la pena chiarire:

IP della VPN (interno)

Quello che vedi con:

ip -4 addr show dev wg0

è un IP “interno” della rete VPN (es. 10.x.x.x, 192.168.x.x, ecc.)

IP pubblico (quello che vede internet)

Se la VPN instrada il traffico verso internet, allora il tuo IP pubblico cambia.

Puoi verificarlo così:

curl ifconfig.me

Oppure:

curl ipinfo.io/ip

Se vedi un IP diverso dal tuo normale, allora stai uscendo su internet tramite VPN.

Mini-checklist veloce (comandi utili)

Vedere l’IP assegnato alla VPN:

ip -4 addr show dev wg0

Stampare solo l’IP:

p -4 addr show dev wg0 | grep -oP 'inet \K[\d.]+'

Stampare il file di configurazione:

sudo cat /etc/wireguard/wg0.conf

Config attiva (in formato conf):

sudo wg showconf wg0

Stato completo:

sudo wg show wg0

Vedere l’IP pubblico:

curl ifconfig.me

Con questo abbiamo chiuso

Dopo aver configurato WireGuard e averlo reso comodo da gestire tramite tray (come nella guida precedente), questi comandi ti permettono di:

  • verificare subito se la VPN è attiva
  • controllare che IP ti è stato assegnato
  • stampare la configurazione file e runtime
  • capire se stai navigando con un IP pubblico diverso

Se vuoi, nel prossimo articolo possiamo aggiungere anche:

  • un pulsante nella tray app per mostrare l’IP attuale
  • una notifica desktop con IP e handshake
  • controllo “VPN attiva/non attiva” più affidabile

Buon tunnel

Qual è il mio ip da terminale? Come fare in una sola riga con un comando elementare.

Si può eseguire un comando per capire quale sia il proprio indirizzo IP? E poi, diciamocela tutta: quanto è noioso nelle operazioni sistemistiche, mentre si è nel bel mezzo di un “colloquio” con un server remoto, attraverso la propria console, capire quale sia l’ip esposto della macchina (quello pubblico per intenderci)?

La pigrizia è lo stimolo più grande di chi progetta soluzioni, magari non proprio per tutti, ma credo per tanti!

Io uso semplicemente una chiamata a una pagina web con curl, provare per credere:

curl ifconfig.me

Come eliminare tutti i prodotti da woocommerce senza impazzire?

Minimo sforzo massima resa, in questo post spiego come ho fatto a risolvere il problema che un mio cliente aveva generato per errore. Oltre alla soluzione troverete anche l’iter che mi ci ha portato.

A seguito di un’importazione sbagliata, un mio cliente aveva riempito il suo e-commerce (woocommerce) di 2000 prodotti vuoti! Fortunatamente si trattava di un ambiente di pre-produzione e quindi non ha avuto alcun impatto sull’esperienza utente.

Tuttavia si era reso necessario un intervento massivo su tutti i prodotti, in quanto andavano eliminati del tutto dal sito internet.

Il mio cervello ha pensato subito a scrivere un poco di codice per creare uno script da lanciare in batch attraverso di un plugin ad hoc, che avrebbe dovuto esporre una pagina con un pulsante di distruzione di massa, quindi esporre un avviso per chiedere all’utente se fosse sicuro di quello che stava facendo … ma sono troppo pigro, per cui, il secondo pensiero è stato gugolare un poco (anche se in realtà uso perlopiù duckduckgo, ve lo consiglierò prima o poi assieme ad altri tool per la vostra privacy).

Dalla ricerca che ho usato wordpress how to delete all products è venuto fuori (ovviamente) la qualunque … focalizzerò l’attenzione su 2 delle soluzioni che ho trovato.

1. Aumento numero prodotti visualizzati

Parte superiore della pagina prodotti di wordpress/woocommerce

Alcuni consigliano di visualizzare più prodotti sulla stessa pagina e cancellarli massivamente

Ma questa soluzione, mostrando un numero considerevole di prodotti (anche 300), è veramente sconsigliata per tanti motivi:

  • è maledettamente lenta;
  • prevede dei tempi morti perfino lato client (javascript ci mette un po’ a spuntare tutte le checkbox!);
  • anche se il processo di cancellazione massiva viene gestito in batch, ottimizzando l’uso della memoria RAM, vi ritroverete comunque a consumare molte risorse e ad aspettare molto tempo prima che la nuova pagina venga ricaricata e possiate lanciare un altro cancella tutti.

Questa soluzione per me è quindi SCONSIGLIATA. Passiamo alla prossima

2. Query diretta al database che rimuove tutto

Non male come idea. Una bella query, fatta bene che va a togliere non solo i prodotti, ma tutte le sue relazioni con le altre risorse BASE di wordpress.

Quel “BASE” non è maiuscolo per caso. Quello che intendo impropriamente dire con risorse BASE, significa che se per qualche motivo il vostro prodotto è collegato a qualche altra risorsa introdotta da un plugin o da software di terze parti, rischiate seriamente di perdervi pezzi per strada.

Uno screenshot della soluzione così come riportata su Store App org.

Il sito storeapps.org, propone una soluzione basata su questa query:

DELETE relations.*, taxes.*, terms.*
FROM wp_term_relationships AS relations
INNER JOIN wp_term_taxonomy AS taxes
ON relations.term_taxonomy_id=taxes.term_taxonomy_id
INNER JOIN wp_terms AS terms
ON taxes.term_id=terms.term_id
WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type IN ('product','product_variation'));

DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type IN ('product','product_variation'));
DELETE FROM wp_posts WHERE post_type IN ('product','product_variation');

Ma ad ogni modo, lo stesso autore dopo questa query dice:

However, this is not the best way to bulk delete products

Dal sito storeapps.org

Anche se loro sconsigliano l’approccio query based, perché vogliono vendervi un plugin che fa cose, quella che dicono è una grande verità.

Troppo rischioso lanciare query nel database senza alcuna pietà. Potresti ritrovarvi con più problemi di quando avete iniziato.

Se scegliete questo approccio che io SCONSIGLIO, abbiate almeno il buon cuore di effettuare una copia di backup del database (ho scritto anche io un poco a riguardo).

3. WP CLI

La WP CLI è un software portabile scritto in PHP che vi consentirà di lanciare dei comandi sulla console per ottenere quello che volete.

Non sai di che parlo? Fidati di me, usa il metodo 1.

Il comando che ho lanciato e che ha funzionato come un incantesimo è stato quello suggerito da Ryan Steven sul suo blog.

Provare per credere:

wp post list --field=ID --post_type=product --posts_per_page=2000 | xargs wp post delete --force
Il comando che ho lanciato sul terminale dell’hosting in questione. Come è possibile vedere ho usato direttamente il file .phar.

Se avete il sito su hosting che non ha accesso alla console sappiate che potete usare lo stesso la cli, ma facendo un accrocchio che spero di avere modo di illustrarvi in qualche altro post in futuro.

Conclusioni

Se siete utenti smaliziati, dovete avere a che fare con operazioni ripetitive, containers, orchestratori (tipo kuberneetes), allora vi consiglio di studiare l’uso della CLI (proposta come migliore soluzione, la numero 3).

Se non siete utenti esperti state lontano come la peste dalle query (soluzione 2) e lanciatevi sulla soluzione 1, specie se la cancellazione massiva è da fare una tantum.