To route Puppeteer page requests through a proxy, pass Chromium’s --proxy-server switch in the args array when launching the browser. Then navigate to the page and capture it with page.screenshot(). The proxy address below is a placeholder; replace it with an endpoint and scheme provided by your proxy operator.
Set a proxy when launching Puppeteer
Puppeteer passes launch arguments to Chromium, so configure the route when you call puppeteer.launch(). This complete example uses an HTTP proxy and saves a full-page PNG:
As an Amazon Associate I earn from qualifying purchases.
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy.example:8080'],
});
try {
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'capture.png', fullPage: true });
} finally {
await browser.close();
}
Replace http://proxy.example:8080 with the proxy provider’s actual endpoint. It is an illustrative placeholder, not a tested proxy service. This setting configures Chromium’s network route; page.screenshot() captures the rendered page and does not itself set up a proxy.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Using puppeteer-core
If you use puppeteer-core, provide an installed browser through executablePath or select a browser channel in the launch options, in addition to the proxy argument.
#1 Best Overall
- 【WIRELESS MOBILE MINI TRAVEL ROUTER】 Convert a public network (wired or wireless) to a private Wi-Fi for secure surfing. Tethering. Powered by any laptop USB, power banks or 5V/2A DC adapters (sold separately). 39g (1.41 Oz) only, portable and pocket friendly. 2.4GHz ONLY
- 【OPEN SOURCE & PROGRAMMABLE】 OpenWrt pre-installed, USB disk extendable.
- 【LARGER STORAGE & EXTENDABILITY】 128MB RAM, 16MB Flash ROM, dual Ethernet ports, UART and GPIOs available for hardware DIY.
- 【OPENVPN CLIENT】 OpenVPN client pre-installed, compatible with 30+ VPN service providers.
- 【PACKAGE CONTENTS】 GL-MT300N-V2 (Mango) mini router (2-year Warranty), USB cable, Ethernet cable, User Manual. Please update to the latest firmware.
Choose the right proxy scheme and routing behavior
Use the scheme that matches the endpoint supplied by your proxy operator. Chromium documents --proxy-server for a single proxy, scheme-specific proxies, proxy bypass rules, and PAC configuration.
| Need | Example launch argument | What it does |
|---|---|---|
| One HTTP proxy for URL requests | --proxy-server=http://proxy.example:8080 |
Routes URL loads through the specified HTTP proxy. |
| Secure HTTPS transport to the proxy | --proxy-server=https://proxy.example:8443 |
Connects to the proxy using HTTPS transport. This describes the connection to the proxy, not merely the fact that the destination website uses HTTPS. |
| SOCKS5 proxy | --proxy-server=socks5://proxy.example:8080 |
Uses a SOCKS5 proxy for URL loads. Chromium warns that some browser components may still resolve DNS directly. |
| Different proxy by URL scheme | --proxy-server="http=http://proxy-http.example:8080;https=https://proxy-https.example:8443" |
Maps HTTP and HTTPS URLs to separate proxies. Use the syntax and endpoints supported by your Chromium version and proxy operator. |
| Send selected hosts directly | --proxy-server=http://proxy.example:8080 --proxy-bypass-list="localhost;*.internal.example" |
Bypasses the proxy for matching destinations. Those hosts connect directly; the bypass list only applies alongside --proxy-server. |
| Use proxy auto-configuration | --proxy-pac-url=https://example.com/proxy.pac |
Loads a PAC configuration URL to determine routing. Availability and behavior depend on the PAC file and browser configuration. |
Chromium documents these switch patterns in its network settings documentation and documents secure proxy transport separately in its secure web proxy guidance. Do not relabel an HTTP, HTTPS, or SOCKS endpoint: choose the scheme the provider actually supplies.
Rank #2
- 【Advanced Home Data & Media Hub】For advanced home users who need phone backup, file storage, and centralized data management. Centralize family photos, 4K videos, movies, computer backups, and personal files in one place while running multiple apps for home entertainment and everyday data management. Suitable for households with growing digital libraries and multiple NAS use cases.
- 【Built for Creators, Media Servers & Advanced Apps】Powered by the Intel N100 Quad-Core CPU, 8GB DDR5 RAM, 2.5GbE networking, and dual M.2 NVMe slots, DXP2800 handles large files and heavier workloads with ease. Run Docker, virtual machines, and media server applications compatible with Plex—ideal for content creators, tech enthusiasts, and advanced home users managing 4K videos, RAW photos, personal media libraries, and multiple NAS apps.
- 【Up to 80TB for Growing Digital Libraries】 Supports up to 80TB of storage using two HDD bays and two M.2 NVMe SSD slots for family photos, movies, RAW photos, 4K videos, work files, and device backups. AI photo management supports recognition of people, objects, scenes, and locations, album organization, and duplicate photo detection. HDDs and SSDs are not included.
- 【AI-powered Home Surveillance】Turn DXP2800 into a centralized home surveillance hub by connecting compatible network cameras and storing recordings locally on your NAS. AI-powered features include Face Recognition, People Detection, and Pet Detection, helping advanced home users review important events more efficiently while managing home surveillance and personal data in one place.
- 【One data Center Across Your Devices】Keep files from desktops, laptops, phones, tablets, and other devices together instead of scattered across cloud accounts and external drives. Access, back up, organize, and share data across Windows, macOS, Android, iOS, web browsers, and compatible smart TVs—ideal for creators and advanced home users working across multiple devices.
SOCKS5 and DNS behavior
A SOCKS5 proxy switch routes URL loads, but it does not guarantee that every Chromium component’s DNS activity also uses the proxy. Chromium notes that DNS prefetching and other components can still make direct DNS requests. If your requirement is to prevent local hostname resolution, Chromium documents a host-resolver rule used with SOCKS, for example:
Free tools Windows power users keep installed
One-click scans. No signup required.
args: [
'--proxy-server=socks5://proxy.example:8080',
'--host-resolver-rules=MAP * ~NOTFOUND, EXCLUDE localhost'
]
Check the current Chromium guidance and your environment before adopting resolver rules; they change hostname resolution behavior and may affect local destinations.
Rank #3
- One Place for All Your Data - Consolidate scattered files from multiple computers, phones and external drives into one accessible hub with 100% ownership
- Professional File Collaboration - Share projects with clients, sync documents across teams and maintain version control without Dropbox fees
- Automated Backup Protection - Set-and-forget backups for Macs, PCs and mobile devices to multiple destinations including cloud and external drives
- DIY Surveillance System - Transform IP cameras into a professional monitoring solution with motion alerts, recording schedules and remote viewing
- 2-Year Warranty - Reliable hardware backed by Synology's expert customer support team and ongoing software updates
Proxy authentication
Authentication handling depends on the proxy scheme and Chrome behavior. The available documentation does not establish a universal Puppeteer recipe for supplying proxy usernames and passwords, so verify the method with your proxy provider and the browser version you run rather than assuming credentials embedded in a proxy URL will work.
Navigate, wait for the right state, and take the screenshot
The sequence is launch, open a page, navigate, wait for the content your capture requires, take the screenshot, and close the browser. The example uses waitUntil: 'networkidle2', a Puppeteer navigation option; it is not correct for every site. Pages that keep network connections open or render content after initial navigation may need a different readiness condition.
Rank #4
- Unlimited bandwidth, unlimited data.
- Super-fast VPN and one tap connect.
- Free worldwide multiple servers.
- Works with all type of data carries. (Wi-Fi, 4G, LTE, 3G).
- No registration, sign up needed.
- Use
fullPage: truewhen the image should include content beyond the viewport. - Use the screenshot option
clipwhen you need a rectangular region instead of the full page. - Puppeteer also supports screenshotting a selected element; consult the current Puppeteer screenshot guide for the API details matching your installed version.
- Screenshot options include output path and image type; select the format that suits the consuming application.
The Puppeteer guide identifies Page.screenshot() as the screenshot method. See the ScreenshotOptions API for options such as fullPage, clip, path, and image format.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Common problems and fixes
| Symptom | Likely cause | What to check |
|---|---|---|
| The page fails to load or Chromium reports a proxy connection error. | The endpoint, port, or scheme is wrong, unavailable, or unsupported by the provider. | Confirm the exact proxy URI and port with the provider, then test the same scheme in the launch argument. |
| The screenshot is blank or captures an incomplete page. | The page was captured before its required content rendered, or the chosen navigation wait condition does not match the site. | Wait for the relevant page state or selector before calling screenshot(); do not treat networkidle2 as a universal readiness guarantee. |
| A SOCKS5 setup still produces direct DNS requests. | The proxy switch covers URL loads, not necessarily all browser DNS activity. | Review Chromium’s SOCKS guidance and whether a host-resolver rule is required for your use case. |
| Some hosts are unreachable after adding a bypass list. | A matching bypass rule sends those destinations directly, outside the proxy. | Check the host patterns and remove or narrow bypass entries if those hosts must use the proxy. |
| Proxy credentials are rejected. | Authentication requirements vary by proxy scheme and browser behavior. | Use the authentication method documented by your provider for the specific endpoint; do not assume a URL-embedded username and password are universally supported. |
puppeteer-core cannot find or start a browser. |
The core package needs a browser location or channel. | Set executablePath or channel in launch options for the installed browser. |
Performance and reliability considerations
A proxy adds a network hop, so page load time and success depend on the proxy endpoint, target site, and routing requirements. Choose a wait condition based on the content you need rather than waiting longer than necessary or assuming a particular idle state guarantees that every page is ready. Keep the browser close in a finally block so it is shut down if navigation or capture fails.
Best Value
- Complete Phone & Computer Backup - Automatically protect photos, documents and videos from iPhone android, Mac and Windows to one secure location
- Your Private File Cloud - Access files from anywhere and share large projects with family or clients without relying on expensive cloud subscriptions
- Smart Home Security Hub - Monitor your home 24/7 with AI-powered surveillance that detects people, vehicles and sends instant alerts
- 100% Data Ownership - Keep full control of your personal data with multi-platform access and no monthly subscription fees
- 2-Year Warranty - Reliable hardware backed by Synology's expert customer support team and ongoing software updates
Or skip the browser setup
ScreenshotNeo is a screenshot API and MCP server if you would rather request a capture than manage Chromium and proxy configuration yourself. One GET request returns an image or PDF. See the ScreenshotNeo API documentation for available parameters.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses include X-Page-Verdict and X-Billed headers. Its MCP server offers take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients. The free plan includes 1,000 shots a month without a card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Does `–proxy-server` route every kind of Chromium traffic through the proxy?
No. In particular, Chromium warns that SOCKS proxy configuration does not necessarily route all DNS activity through the proxy.
Can I use a proxy bypass list without setting a proxy?
No. Chromium’s proxy bypass list has effect alongside `–proxy-server`.
Does `networkidle2` guarantee that a page is ready for a screenshot?
No. It is one navigation wait option; the right readiness condition depends on the site and the content to capture.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Recommended Free Tools




