NordVPN Linux ubuntu script メモ

LinuxコマンドでNordVPNを設定するときのメモ。

2024-09-02 NordVPNの接続のたびに設定を上に追加されしまうので。




#!/bin/bash


# 一時的に既存のルールを削除
sudo iptables -D FORWARD -s  -p tcp --dport  -j ACCEPT

# NordVPNのルールが適用された後に、再度ACCEPTルールを最上位に追加
sudo iptables -I FORWARD 1 -s  -p tcp --dport  -j ACCEPT



 

2024-09-02 テスト中。どれがまずいのかだね。

テストの方法がいろいろまずかった。
ブラウザがちょっとキャッシュの影響とかいろいろ。

curl http://100.xx.xxx.xx:8088/

とかでテストしよう。

 



sudo iptables -I INPUT 1 -s 100.xx.xxx.xxx -p tcp --dport 8088 -j ACCEPT

みたいにルールを追加する方がいいんだけどね。

駄目なら削除していく。
ようは、行番号を確認しながら、Nordvpnが追加したルールを削除していく。

 



sudo iptables -L FORWARD -v -n --line-numbers
sudo iptables -D FORWARD 行番号

sudo iptables -L INPUT -v -n --line-numbers
sudo iptables -D INPUT <番号>




どれがまずいのかなと。

FOWARDのこれだった。

1 18 936 DROP all -- * * 100.64.0.0/10 0.0.0.0/0 /* nordvpn-exitnode-permanent */

なるほどな。メッシュネットワーク内の通信をドロップしちゃってるな。

sudo iptables -I FORWARD 1 -s <from_IP> -p tcp --dport <dest_port> -j ACCEPT

これで行けた。

ってことはこれを複数スクリプトで設定すればいいか。

 

2024-09-01 メッシュネットの関係だったようだ。

なるほど。メッシュネットを有効にするとiptablesが追加されるんだな。
ということが分かったぞと。

# sudo iptables -L INPUT -v -n

で追加されたことが分かる。

Gpt4oさんからの回答は以下。

特定のIPアドレス(例えば、100.74.xx.xxxなど)からの接続を特定のポート(例えば、49xxx)で受け入れる。
上記IPアドレスからの通信で、プライベートIPレンジ(例えば、192.168.0.0/16、10.0.0.0/8)へのアクセスを拒否する。
100.64.0.0/10範囲内のIPからの既存の通信は受け入れるが、新しい接続は拒否する。

 

2024-08-31 いや、Nordvpnが勝手に追加しているんだからさ。追加された後で問題になっているものを無効にしないといけないかなと。

 

とりあえず、NordVpnがインストールされる前のバックアップに戻した。

 

現在のiptablesを保存。場合によってはリストアできるように。

sudo iptables-save > /path/to/backup/iptables-backup.rules

sudo iptables-restore < /path/to/backup/iptables-backup.rules

 

2024-08-27 フィルタリングが原因でhttpがつながらない。

 

iptables-persistent の解説。

これでフィルタリングの設定を永続化できるのかな。

現在の設定を確認。

sudo iptables -L INPUT -v -n

なんだけどね。

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

をやると外部からつながるけど、

全部削除しちまっていいものか。ってね。

 

あと、

sudo iptables-save > /etc/iptables/rules.v4

をやると一応戻るっていうかつながる。

Gpt-4oさんに聞いた内容。

sudo iptables -A INPUT -j LOG –log-prefix “iptables-dropped: “

このログを確認して、問題を引き起こしているルールを特定します。ログは通常

/var/log/syslog

/var/log/kern.log に記録されます。

 

 

 

2024-08-26 不可思議な状態について様子見。

とりあえず分かったことはNordvpnのメッシュネットワークでアクセスできた。

IPでもマシン名でも可能だった。

あと、メッシュネットワークはVPNとは別動作みたい。

つまり、VPNつながっていなくてもメッシュネットワーク使える。つまりアクセスできる。

あと、外部からの接続できない状態が最初あった。

sudo iptables -S
sudo iptables -L -v -n

でつながったんだけど、なぜか再起動して設定元に戻ってからも問題なく接続できている。

NordvpnとDockerコンテナ(で動くWebサーバー)の起動のタイミングか??

この辺不明なので様子見中。

 

2024-08-26 CPUリソースの問題。NATの問題。ログインの問題調整。

ログインだけGui、Gnomeの自動起動でやるか。



#!/bin/bash

sleep 20

# NordVPNのログインを試みるスクリプト

login_status=$(nordvpn login | grep "already logged in")

if [ -z "$login_status" ]; then
  echo "You are not logged in. Starting browser to login..."
  login_url=$(nordvpn login | grep -oP 'https://[^\s]+')
  
  # ここで特定のブラウザを指定して起動
  firefox "$login_url"
  # または
  # chromium-browser "$login_url"

  echo "Please complete the login in your browser."
else
  echo "You are already logged in."
fi



Cronで実行かな。こんな感じ。Bootでも実行しないといけないかな。



#!/bin/bash

# 設定
EMAIL="your-email@example.com"  # 通知を送信するメールアドレス
LOG_FILE="/var/log/nordvpn_check.log"  # ログファイルの場所
CPU_THRESHOLD=80  # CPU使用率の閾値(%)
MEM_THRESHOLD=70  # メモリ使用率の閾値(%)
BRIDGE_IP="192.168.x.xxx"  # ブリッジ接続時に使用される固定IP

# ブリッジ接続かどうかを確認
if ip a | grep -q "$BRIDGE_IP"; then
    echo "$(date): ブリッジ接続が検出されました。VPN接続を維持します。" | tee -a "$LOG_FILE"
else
    echo "$(date): NAT接続が検出されました。VPN接続は不要です。" | tee -a "$LOG_FILE"
    nordvpn disconnect
    exit 0
fi

# NordVPNの状態を取得
STATUS=$(nordvpn status)

# 接続状態の確認
if echo "$STATUS" | grep -q "Status: Connected"; then
    echo "$(date): NordVPNは接続されています。" | tee -a "$LOG_FILE"
else
    echo "$(date): NordVPNは接続されていません。接続を開始します。" | tee -a "$LOG_FILE"
    
    nordvpn set lan-discovery on
    nordvpn set meshnet on

    nordvpn connect

    # 再度接続確認
    if nordvpn status | grep -q "Status: Connected"; then
        echo "$(date): 再接続に成功しました。" | tee -a "$LOG_FILE"
    else
        echo "$(date): 再接続に失敗しました。" | tee -a "$LOG_FILE"
        echo "NordVPNの再接続に失敗しました。" | mail -s "NordVPN再接続エラー" "$EMAIL"
        exit 1
    fi
fi

# リソース使用率の確認
CPU_USAGE=$(ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | grep nordvpn | grep -v grep | awk '{print $5}' | head -n 1)
MEM_USAGE=$(ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | grep nordvpn | grep -v grep | awk '{print $4}' | head -n 1)

if [ "$(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc)" -eq 1 ] || [ "$(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc)" -eq 1 ]; then
    echo "$(date): NordVPNのリソース使用量が高いため、サービスを再起動します。" | tee -a "$LOG_FILE"
    
    # サービスを再起動
    systemctl restart nordvpnd
    
    # 少し待ってから再接続
    sleep 10
    
    # VPN接続を再確立
    nordvpn connect
    
    # 接続確認
    if nordvpn status | grep -q "Status: Connected"; then
        echo "$(date): サービス再起動後、接続に成功しました。" | tee -a "$LOG_FILE"
    else
        echo "$(date): サービス再起動後の再接続に失敗しました。" | tee -a "$LOG_FILE"
        echo "NordVPNの再起動後の再接続に失敗しました。" | mail -s "NordVPN再接続エラー" "$EMAIL"
        exit 1
    fi
fi

 

 

2024-08-22 ログインスクリプト、自動で接続するためにいろいろ。

とりあえずログインはブラウザでGUIでやるしかないかなぁ。

Gnomeの自動起動で設定。

bash -c “/path/to/start_nordvpn/chk_login.sh”

とりあえずこれでログインしてくれーってGUIで出るようになるからな。

とりあえず起動したときにログインしていれば特に何も出ない。



#!/bin/bash
# NordVPNのログインを試みるスクリプト

login_status=$(nordvpn login | grep "already logged in")

if [ -z "$login_status" ]; then
  echo "You are not logged in. Starting browser to login..."
  login_url=$(nordvpn login | grep -oP 'https://[^\s]+')
  
  # ここで特定のブラウザを指定して起動
  firefox "$login_url"
  # または
  # chromium-browser "$login_url"

  echo "Please complete the login in your browser."
else
  echo "You are already logged in."
fi


 

 

 

Android Studio アンドロイドスタディオ 設定メモ。

2024-11-18 いきなりビルドできなくなったので。

NordVpnのせいだった。

Nordvpnで除外に設定したりもしたんだけど全然ダメっぽかったので、しょうがねーなー。と。

いちいちツールの設定を頑張ったけど、とりあえず、もうとりあえずその時だけNordvpnオフで。

 

Gpt4oさんの回答ーーーーー

おすすめのアプローチ
手軽さを優先する場合 → Gradleのローカル化がおすすめ。
完全に分離された環境を優先する場合 → VirtualBoxでUbuntuを利用。
リソース消費を抑えたい場合 → Docker。
どれも実現可能ですが、まずは簡易的な方法から試していき、最終手段としてDockerやVirtualBoxを検討するのが良いと思います。

あなた:
はー。まったく。しょうがないなぁ。ビルドするときだけ一時的にNordvpnをオフにする。っていうどうしようもない対応をしようかな・・・・・。
ChatGPT:
ChatGPT
それも一つの現実的な対応策ですね!特に、NordVPNをオフにすることで確実に問題が解決するのであれば、ビルド作業中のみVPNを一時的にオフにするのは、作業効率を優先するうえで最小限の手間で済む方法です。

ーーーーーーーーーーーーー

2024 確定申告 手順メモ

2025-02-24 Backpac_sol_wallet 連携

連携済み、結構自動認識間違っている感じ。その分は手動でとりあえず作っている。

 

 

2025-02-24 CryptactでSolチェーン対応になった手続き。

Stepn_External、Solanaチェーン追加。

もしかして、SUIとCustomもそのうち追加されるのかも。
Cryptactの画面でそうなっている。Soonだそうだ。

今までのINとOUTの差額で、OUTを利益確定としていた分との整合性を取らないといけない。

用は今からリアルタイムでSolチェーンからデータをとれる分はリアルタイムで記録するとして、
となると今までの分は少額だが口座に残っている分は利益確定としてカスタムファイルに入力しないといけない。

BONUSとして入力するしか方法がないのでそうします。

で、メモを見ると、
2025-01-20 10:21:01
に出金している。
幸いなことに2025の取引はこれだけだ。

しかし出金先も自分のWalletだ。

よって今残っている分をとにかくBONUSとして、これ以前の履歴は除外とします。→カスタムファイル作成

で、STEPのInternalWallet関してはアドレスが取れないので今まで通りINを損失、OUTを利益とします。

 

 

2025-02-24 2024年分計算メモと纏めの内容。

 

2024分の確定申告、基本的にはCryptactで作成。

だからデータはCryptactの損益のスクリーンショットが利益ということになります。

で、アップロードできるファイルがあるところはいいとして、結局アップロードに対応しない取引所が多いです。その場合基本はカスタムファイルで対応。

カスタムファイルはこちらでスクリプトを組んで作成。

今季からDefi連携プランが使えるようになったので、EVMを連携して膨大な履歴から取引になるものは抽出しました。

しかし、Solチェーンその他に対応していないままなので、こちらはカスタムファイル。

用はマイナーなチェーンだとどうしようもないのでカスタムファイル、その他海外取引所なども事実上どうしようもない所が多いのでカスタムファイルでの対応になっています。

カスタムファイルの内容は基本的には何かやるたびにメモを取っていたのでそれを適用して作成。

そもそもどうしてもそれだと誤差が出るし、こちらが把握していないのに勝手に何か送られていたりするのがクリプトの常なので、最後に誤差修正としてプラスマイナスを計算してクリプタクトに入力しています。

よって最終的な口座残高はあっている状態のはず。

後予期せぬイベントで、Bittrexが破綻している。

CEXだし、引き出し失敗した分は残っているはずと考えられるが、連絡不能なのと維持手数料が少しずつ取られて行って、最終的に0になる旨のメールが来ている。

よってその分も最終残高調整でLOSSという入力をしています。

前年と同じだけどStepnなどのゲームについてはSolチェーンがそもそもCrypatactに非対応だし、Sptepn内部ウォレットについてはWalletアドレスすら取れない。

よって前年と同様にINとOUTの差額を損益としています。

というか、INが今期はないのでOUT=利益確定としてBONUSとして入力してます。

とはいえこの辺はCryptact側がSOLチェーンに対応しそうではある。だから来期は多分チェーンからリンクして取得できると思われます。

ただ、Stepnに接続されている外部ウォレットだけで、Stepn内部のウォレットはアドレスすら取れないため今まで通りINとOUTを損益とするしかないと思われます。