Operations

Cheap Linux VPS Vietnam with multiple IPv4 for PowerMTA

Why run PowerMTA on a cheap VPS in Vietnam with multiple IPv4?

If you send transactional or marketing email at scale, PowerMTA gives you granular control over delivery, throttling, and IP rotation. The bottleneck is often the VPS itself — you need a cheap VPS with multiple dedicated IPv4 addresses that are pre-warmed and have clean reputation. Vietnam VPS providers like thueVPS offer cheap VPS Vietnam with dedicated IPv4 addresses where you control rDNS and full root access. This guide walks you through setting up PowerMTA on Ubuntu 24.04 LTS with five additional IPv4 addresses on a single network interface, configuring SPF, DKIM, and rDNS so your emails land in the inbox.

Prerequisites

  • A Vietnam VPS hosting plan with multiple IPv4 addresses. At minimum one primary IP + 2-5 additional IPv4s (thueVPS offers this as an add-on for Linux VPS plans).
  • Linux VPS running Ubuntu 24.04 LTS (or Debian 12).
  • Root access via SSH.
  • PowerMTA license (or evaluation key) from Port25.
  • DNS control for your sending domain(s).

Step 1 — Assign additional IPv4 addresses to the network interface

After your VPS is provisioned with the extra IPs, you need to bring them up on the wire. On Ubuntu 24.04, netplan is the default network manager. Add virtual IP aliases to the main interface (usually eth0 or ens3).

sudo nano /etc/netplan/01-netcfg.yaml

Find your existing interface config and add addresses: as a list of CIDR entries:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 103.xxx.xxx.1/24
        - 103.xxx.xxx.2/24
        - 103.xxx.xxx.3/24
        - 103.xxx.xxx.4/24
        - 103.xxx.xxx.5/24
      gateway4: 103.xxx.xxx.254
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]

Adjust with your actual IPs and subnet mask (commonly /24 for a /29 block). Apply the config:

sudo netplan apply

Verify:

ip -4 addr show eth0

You should see each IP listed under the interface with a different label (eth0, eth0:0, etc.). Confirm that all IPs are reachable from outside:

for ip in 103.xxx.xxx.1 103.xxx.xxx.2 103.xxx.xxx.3; do ping -c 1 -I $ip 8.8.8.8 && echo "$ip OK"; done

Step 2 — Configure PowerMTA to bind to multiple IPs

Download and install PowerMTA on your SMTP VPS. After installation, edit the main config file:

sudo nano /etc/pmta/config

Define the virtual IPs as <smtp-listener> OR as virtual MTAs. For outbound binding, the cleanest approach is to define a virtual-mta per IP. Example for three IPs:

<virtual-mta v0>
  <source-server>
    smtp-listener address=103.xxx.xxx.1 port=25
  </source-server>
  <domain-routing local-parts=*>
    smtp use-bind-address=103.xxx.xxx.1
  </domain-routing>
</virtual-mta>

<virtual-mta v1>
  <source-server>
    smtp-listener address=103.xxx.xxx.2 port=25
  </source-server>
  <domain-routing local-parts=*>
    smtp use-bind-address=103.xxx.xxx.2
  </domain-routing>
</virtual-mta>

<virtual-mta v2>
  <source-server>
    smtp-listener address=103.xxx.xxx.3 port=25
  </source-server>
  <domain-routing local-parts=*>
    smtp use-bind-address=103.xxx.xxx.3
  </domain-routing>
</virtual-mta>

Important: Each IP must have its own rDNS (PTR record) pointing to a unique subdomain (e.g., mta1.yourdomain.com, mta2.yourdomain.com).

Save and restart PowerMTA:

sudo systemctl restart pmta

Verify:

tail -20 /var/log/pmta/inbound.log

Look for lines showing each IP binding without errors. Also check:

sudo pmta show config virtual-mta

You should see all defined virtual MTAs.

Step 3 — Set up rDNS (PTR) for each IP

rDNS is the first check many receiving mail servers (Gmail, Outlook) perform. Using your VPS provider’s control panel, request a PTR record for each additional IPv4. In thueVPS, submit a support ticket with your IP and desired hostname. The hostname must be a fully-qualified domain (e.g., mta1.send.example.com).

After the PTR is set, verify with:

for ip in 103.xxx.xxx.1 103.xxx.xxx.2 103.xxx.xxx.3; do dig -x $ip +short; done

Output should show your subdomains, not a generic ISP hostname.

Step 4 — Configure SPF, DKIM, and DMARC

SPF: Add a TXT record for your sending domain:

v=spf1 ip4:103.xxx.xxx.1 ip4:103.xxx.xxx.2 ip4:103.xxx.xxx.3 ~all

DKIM: Generate a 2048-bit keypair per sending IP or domain (recommended one key per domain). Use opendkim or the built-in PowerMTA DKIM module:

sudo mkdir -p /etc/pmta/dkim
sudo openssl genrsa -out /etc/pmta/dkim/example.com.key 2048
sudo openssl rsa -pubout -in /etc/pmta/dkim/example.com.key -out /etc/pmta/dkim/example.com.pub

Add DKIM config to /etc/pmta/config:

<domain *>
  sign-dkim yes
  dkim-selector-selector1
  dkim-private-key-file /etc/pmta/dkim/example.com.key
  dkim-sign-headers From,Date,Subject,Message-ID,To
</domain>

Publish the public key as a TXT record at selector1._domainkey.example.com:

v=DKIM1; h=sha256; k=rsa; p=BASE64PUBKEY

DMARC: Add a TXT record for _dmarc.example.com:

v=DMARC1; p=none; sp=none; pct=100; rua=mailto:[email protected]

All DNS records can propagate in minutes. Verify with:

dig txt example.com +short | grep v=spf1
dig txt selector1._domainkey.example.com +short

Step 5 — Warm up IPs and avoid blacklists

Sending from a new IP on a cheap VPS Vietnam requires a warm-up plan. Start with 50-100 emails per IP per day, increase by 20% daily, staying below 2,000/day for the first week. Monitor delivery on https://postmaster.google.com and https://sendersupport.olc.protection.outlook.com.

Add monitoring rules in PowerMTA to throttle per IP and per domain if bounce rates exceed 2%:

<source-route>
  max-smtp-out 5 per-ip
</source-route>

Check blacklist status via mxtoolbox.com or blacklistchecker.com. If an IP lands on a list, stop sending from that IP and request delisting.

Troubleshooting

Issue: PowerMTA fails to start with “cannot assign requested address”
This usually means a virtual IP is not configured on the interface, or netplan did not apply correctly. Run ip -4 addr and confirm the IP exists. Reapply netplan or reboot the VPS.

Issue: Emails are rejected with “reverse DNS does not match”
Your rDNS hostname must match the HELO/EHLO string sent by PowerMTA. In the virtual MTA config, set:

smtp-listener address=103.xxx.xxx.1 port=25 ehlo-hostname=mta1.yourdomain.com

Issue: Outbound connections time out or slow
Check if your VPS provider blocks port 25 outbound. Some cheap VPS Vietnam plans restrict port 25. thueVPS allows port 25 upon request. Verify with telnet gmail-smtp-in.l.google.com 25 from each IP.

FAQ

Can I use any cheap VPS for PowerMTA?

Not all Vietnam VPS providers allow outbound port 25 or offer multiple IPv4 addresses. Choose a provider that explicitly supports email delivery workloads, like thueVPS, and offers block pricing for additional IPs.

How many extra IPv4 addresses do I need?

Start with 3-5 dedicated IPs for small-scale sending (under 10k/day). For larger volumes, scale to 10-20 IPs. Each IP should send no more than 5,000-10,000 emails daily to maintain reputation.

Does the VPS location matter for email delivery?

Yes. Vietnamese IP ranges are less frequently blacklisted than many shared US/EU IPs. Using a Linux VPS located in Vietnam with clean IPs can improve inbox rates for recipients in Asia-Pacific and globally.

What OS version works best with PowerMTA?

Ubuntu 24.04 LTS or Debian 12 are recommended. They are stable, have long-term support, and PowerMTA has prebuilt packages for both. Avoid Ubuntu 22.04 LTS if you need the latest netplan syntax for multiple IPs.

How do I prevent my new IPs from being blacklisted?

Warm up slowly, set up proper rDNS, SPF, DKIM, and DMARC, and monitor bounce and spam complaint rates. Use PowerMTA’s throttling controls to stay under daily limits per IP.

Related articles

Note: This guide is for general reference. Every system and infrastructure has its own specifics, so test each step in a safe environment and consult a qualified engineer before applying it in production.